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

CapabilityValue
Provider IDgoogle_calendar
Auth kindoauth2_user
Connect flowGoogle OAuth user grant
ActionsYes
EventsYes
Webhook deliveryYes
Event samplesYes
Live statusYes

Connect Google Calendar

SurfaceSupport
AppOpen Govern > Integrations, choose Google Calendar, then continue through Google OAuth.
CLIThe mobius CLI does not connect Google Calendar integrations yet. Use the app or API.
APICall 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.deleted

Deleted 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.query

Use 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