Calendar sync
Open Settings → Calendar Sync, a row in the You section between Work Hours and Subscription. Google Calendar is the only calendar Maestra connects to.
Connect a Google account
Section titled “Connect a Google account”- Open Settings → Calendar Sync.
- Use the add action on the Google Calendar section header and finish Google’s consent screen.
- The authorized account appears as a card showing its email address.
A first sync runs as soon as the account is connected. More than one Google account can be connected, and each one keeps its own card.
Choose which calendars are mirrored
Section titled “Choose which calendars are mirrored”Every connected account lists its calendars under Calendars, one row per calendar with its own toggle. The account’s primary calendar is enabled on connect; every other calendar stays off until it is turned on.
Calendars are re-discovered on every sync, so a calendar created later shows up on its own, with its toggle off.
Turning a calendar off removes its mirrored blocks. Turning it on runs a full sync so nothing is missed.
What appears on the agenda
Section titled “What appears on the agenda”Each busy range becomes a muted grey, appointment-shaped card labelled Busy, packed into the same overlap columns as encounters so a clash is visible. Busy cards subtract availability wherever manually blocked time already did, so suggested times and the next-available-time search skip them.
A busy card is inert: there is nothing to open and nothing to drag. It carries no accent bar, which stays the marker of a real encounter. Synced ranges are never all-day bands but always cards, because availability is reported as instants rather than as whole days.
Grid shading still answers a different question, which is when the practitioner is not working, so a busy card does not grey its own slot. It removes the slot from bookable time instead.
Keeping it fresh
Section titled “Keeping it fresh”- A sync runs immediately when the account is connected.
- After that, each connection polls every 15 minutes.
- Sync Now on the account card runs a sync on demand.
Every read covers the whole window rather than a change feed, so a calendar the practitioner cleared clears here too: what the calendar reports is what the agenda shows.
The mirrored window runs from the start of the current UTC day to 180 days ahead. Past busy time is not mirrored, because it cannot cause a double booking.
What the connection reads
Section titled “What the connection reads”The connection reads free and busy times only. Google’s availability response carries start and end instants and nothing else, so no event id, title, location, guest or organizer can reach Maestra even in principle. The two scopes requested are calendar.freebusy and calendar.calendarlist.readonly, which is what also supplies each calendar’s name for its row.
The connection is read-only in the other direction too. Encounters scheduled in Maestra are never written back to Google, and no write scope is requested.
Disconnect
Section titled “Disconnect”Turning off a single calendar removes only that calendar’s blocks. Disconnect on the account card removes the account, its calendars, and every busy block that came from it. The confirmation names the account email before anything is deleted.
If the grant is revoked or expires on the Google side, the card offers a reconnect row instead of syncing. Tap it to run consent again; the mirrored blocks stay in place until the connection is either restored or disconnected.

