1. Find your secret ICS address
- Google Calendar
- Outlook / Microsoft 365
- Open Google Calendar settings → pick your calendar under Settings for my calendars.
- Scroll to Integrate calendar.
- Copy Secret address in iCal format — it looks like
https://calendar.google.com/calendar/ical/you%40company.com/private-…/basic.ics.
No 'Secret address in iCal format' field? (Google Workspace)
No 'Secret address in iCal format' field? (Google Workspace)
On a Google Workspace domain the secret address is governed by an admin policy, and under
the Workspace default (“Only free/busy information”) Google hides the field entirely —
the section ends at the public address. A Workspace admin unlocks it domain-wide:
- admin.google.com → Apps → Google Workspace → Calendar
- Sharing settings → External sharing options for primary calendars
- Select “Share all information, but outsiders cannot change calendars” and save.
2. Connect it — and get an answer immediately
In the Terminal’s Meetings list, click Connect your calendar (under + Plan a meeting; the calendar icon in the header opens the same panel and stays there for managing the connection). Paste the address and hit Connect. Connecting runs a sync on the spot — within seconds the panel answers with the result, not silence:✓ Synced just now — imported 3— done; the meetings are under Upcoming.✓ Synced just now — no meetings with joinable links found— the feed is fine, but no upcoming event carries a Meet/Zoom/Teams link (see what imports).⚠ Last sync failed: …— the actual reason, named (see the error reference below).
Connect
Sync right now → the fresh result
Read the last sync status
Reading the sync status
Every failure names its fix — these are the messages the panel (and the API stamp’slast_error)
can show:
What imports (and what doesn’t)
- Only events with a recognizable meeting link — Meet, Zoom, or Teams, found in the event’s conferencing field, location, or description. Events without one (lunches, focus blocks) are ignored.
- One meeting per event — the next occurrence only. A recurring series tracks its next upcoming occurrence; the one after imports once the current completes.
- Moves and cancellations follow the feed. A rescheduled event moves its meeting; a cancelled or deleted event removes it — unless the bot already joined, in which case sync never touches it.
- Your manual plans are respected. If you already planned a meeting on the same link, the calendar event links up with it instead of creating a duplicate — your title and workspace binding win.
Auto-join for imported meetings
The calendar panel has one global switch — Auto-join imported meetings (default on). It sets the default for every meeting the sync creates; you can still flip auto-join per meeting in its prep view. Turn the global switch off if you want the calendar only to populate Upcoming while you send the bot by hand.Disconnect
Calendar icon → Disconnect (orPUT /user/calendar with {"ics_url": null}). Already-imported
meetings stay; they just stop following the feed.