Browse documentation
All documentation
Getting started
Screens & scenes
Widgets
Integrations
The assistant
Household & presence
Reception & visitors
Menus, art & broadcast
Account, plans & data
API & self-hosting
Troubleshooting

The agenda widget

What the agenda draws from, how far ahead it looks, how it picks between your calendars and a meeting room's, and why an empty agenda is not the same as a broken one.

The agenda is on every plan. What it needs is the Calendar integration turned on and at least one calendar connected.

What it shows

The agenda is a list of what is coming up, grouped under day headings. The first heading is "Today", the second is "Tomorrow", and everything after that is named by weekday — Thursday, Friday — because a date you have to convert into a day is a date nobody reads from across a kitchen.

Each line is a time and a title. Timed events show a 24-hour time; all-day events show "all day" in its place. Titles are held to one line and trimmed with an ellipsis if they are longer, which keeps the column straight when one meeting has a forty-word name.

Agenda — 4 × 5 cellsTODAY09:00 Standup13:30 DentistTOMORROWall day Bin collection
An agenda four columns wide. Day headings appear only when the day changes.
  • Events from every connected calendar are merged into one list rather than kept in separate blocks.
  • Times are always shown in 24-hour form here, regardless of what the clock widget is set to.
  • Locations, descriptions and attendees are not shown. The Coming up next widget shows an event's notes; the week and month views can show a location on a second line.

What it draws from

Everything you have connected under the Calendar integration. There are four ways in — an iCal link, CalDAV, Google, and Outlook — and everything downstream sees the same shape of event whichever one a household used. A screen showing a Google calendar and an iCal feed together does not know or care that they came from different places.

When the widget is set to read all your calendars, it also folds in meetings the screen itself has been invited to. Those belong to that screen and nowhere else, so they are not included when the widget has been pointed at one particular calendar — a panel aimed at one room is answering a question about that room.

Adding one

  1. Connect a calendar first

    Integrations, then the Calendar card. Until something is connected the agenda has nothing to read and says so on the screen.

  2. Open the screen and scene, then Add widget

    Calendar widgets sit behind a single "+ Calendar…" tile in the palette. The picker offers Agenda and Coming up next under "What's coming up", and the week and month views under "The week or the month".

  3. Choose Agenda

    It arrives four columns wide and five rows tall — a column down one side of a screen, which is what it is shaped for.

  4. Set the three fields and press Save & push

    Days ahead, Max events, and which calendar. The defaults suit a household wall; a meeting-room panel wants the Calendar field changed.

Every setting

Days ahead
How far into the future to look. A week is enough for a hallway; a single day is what a busy desk panel wants, so that nothing beyond today competes for the space.Default: 7
Max events
How many lines to draw at most. This is a limit on the list, not on the days — set it low and you will see the next few things across the whole window rather than everything in the first day.Default: 8
Calendar
Which calendar to read: this screen's room, all of them, or one by name. A door panel should read its own room; everything else usually wants all of them.Default: All calendars

Both numbers are capped when the screen asks for them — at most 70 days ahead and at most 400 events. You will not reach either from an agenda widget with sensible values in it, but a very large number in the box does not fail, it just quietly stops growing.

Choosing which calendar

"This screen's room" is the reason this field exists rather than being a plain list of calendars. A building with a panel outside every meeting room runs the same scene on all of them, and the room is a property of the screen rather than of the widget. Baking a calendar's identity into the widget would mean forty near-identical scenes for forty identical panels.

Which room a screen means is resolved by Mirra from the screen's own record, not taken from what the screen asks for. A panel can therefore only ever read the room it is mounted outside, however its layout is edited.

Widget asks for "room"The same scene on every panelMirra looks up the screenThe room comes from the screen'srecordThat room's calendarOr, if no room is set, nothing — andit says so
How "This screen's room" is resolved.

A screen set to read its room but with no room assigned does not fall back to reading the whole building. It reports that no room is set. Falling back would put a company's entire diary on a corridor wall.

An empty agenda

There are three reasons an agenda has nothing on it, and Mirra keeps them apart deliberately. On a kitchen wall the difference hardly matters — a quiet Tuesday looks the same either way. On a meeting-room door it matters a great deal, because an empty agenda outside a room is a claim that the room is free, and somebody acts on that by walking in.

So a screen that could not read a calendar says so rather than showing an empty list.

  • "Nothing coming up." — the calendars were read successfully and there is genuinely nothing in the window. Widen Days ahead if you expected something.
  • "No calendars connected — add one in the portal." — the integration has nothing behind it yet.
  • "Calendar unavailable", with "This is not a claim that nothing is booked." underneath — every calendar it tried to read failed. Check the connection's status on the Calendar page.
  • "No room set for this screen", with "Assign a room to this screen in the portal." — the widget is set to read this screen's room and the screen has not been given one. Open the screen from the dashboard and set This screen's room in the right-hand column.

How often it refreshes

The agenda re-reads its calendars every five minutes. When a calendar is one Microsoft can tell us about, Mirra is notified the moment something changes and the widget refetches immediately rather than waiting out the five minutes — which matters for a room panel, where a meeting booked two minutes ago is exactly the one somebody is standing in front of the door wondering about.

It also refetches whenever Days ahead or Max events change, so editing them in the scene editor shows the result as soon as you save rather than at the next tick.

Related

  • Every widget there isThe complete list of widgets Mirra ships with, grouped the way the scene editor groups them, with what each one shows and what it needs before it will show anything.
  • Connecting calendarsEvery calendar source Mirra can read — an iCal link, a CalDAV account, Google, Microsoft 365 — with the steps for each, what actually syncs, and what quietly breaks it.
  • Meeting rooms and room panelsA door panel can read a room mailbox's own calendar through one administrator consent — this covers the consent, the Exchange grant that actually gives access, adding rooms, and what is and is not built.
  • A calendar is empty or out of dateWhy a calendar widget shows nothing — an expired authorisation, a changed password, the wrong kind of URL, a date range with nothing in it, or a refresh that has not come round yet.
  • Integrations: what they are, and turning them onAn integration is an outside source that several widgets draw on — this explains what turning one on and off does, and why Mirra refuses to turn one off while its widgets are still on a scene.