Productivity
Google Calendar
A Google Calendar integration connects a user's primary calendar to Mobius with Google OAuth, creates a Calendar event watch, and emits source events when calendar events are created, updated, or deleted.
Use Google Calendar when a loop should react to meeting lifecycle changes or when agents need to read and manage calendar events.
For the shared Google credential model, see Google integrations.
Capability map
| Capability | Value |
|---|---|
| Provider ID | google_calendar |
| Auth kind | oauth2_user |
| Connect flow | Google OAuth user grant |
| Actions | Yes |
| Events | Yes |
| Webhook delivery | Yes |
| Event samples | Yes |
| Live status | Yes |
Connect Google Calendar
| Surface | Support |
|---|---|
| App | Open Govern > Integrations, choose Google Calendar, then continue through Google OAuth. |
| CLI | The mobius CLI does not connect Google Calendar integrations yet. Use the app or API. |
| API | Call POST /v1/projects/{project}/integrations/providers/google_calendar/connect with an empty JSON body, then redirect the user to the returned Google OAuth URL. |
On connect, Mobius performs an initial Calendar sync, stores Google's
nextSyncToken, creates an events.watch channel for the primary calendar,
and stores the returned channel metadata. Google expires Calendar channels, so
Mobius renews the watch before expiration.
The webhook callback contains only Google channel headers. When a callback
arrives, Mobius validates the channel token, runs an incremental events.list
request with the stored sync token, emits events for the changed Calendar
events, and stores the new sync token.
Permissions
Mobius requests Calendar event, readonly, and free/busy scopes by default. Event
write actions need calendar.events; free/busy checks need calendar.freebusy;
the initial list and watch setup need read access to the calendars visible to
the connected account.
The integration watches the connected user's primary calendar. Actions can read and write other calendars visible to the account when the action input provides the calendar ID.
Events
google_calendar.event.created
google_calendar.event.updated
google_calendar.event.deletedDeleted or cancelled Google events are emitted as
google_calendar.event.deleted. Created events are detected when Google reports
matching created and updated timestamps; other non-cancelled deltas are emitted
as updates.
Actions
google_calendar.calendar.list
google_calendar.event.create
google_calendar.event.delete
google_calendar.event.get
google_calendar.event.list
google_calendar.event.patch_attendees
google_calendar.event.quick_add
google_calendar.event.respond
google_calendar.event.update
google_calendar.freebusy.queryUse google_calendar.event.patch_attendees for attendee-only edits. It reads
the existing event, merges attendees, and patches the attendee list without
replacing the full event.
Troubleshooting
The live status says the watch expired
Google Calendar push channels expire. Mobius renews them before expiration, but a deployment outage or missing callback URL can let a channel lapse. Reconnect Google Calendar, or wait for the renewal runner after the deployment is healthy.
A callback arrived but no event started a run
Calendar callbacks contain channel metadata, not the event body. Mobius fetches changes with the stored sync token, then emits source events for created, updated, or cancelled events. If Google returns no relevant event delta, no run starts.
Deleted events appear as updates in Google
Mobius emits cancelled or deleted Google events as
google_calendar.event.deleted, so trigger on that event name when a loop
should react to removed meetings.
Next
- Use Calendar events in triggers.
- Inspect event payloads from the event catalog.
- Add approval pauses with interactions.