Google Calendar integration
In short
Read and create events on a shared calendar. Connect it on the Integrations page; your app then calls Google Calendar through Sapilon without ever holding a Google credential.
Lets your app list calendars and read, create, change and delete events on the account you connect.
Use a shared or service account for anything long-lived: the connection stops working when the person who connected it leaves the company.
Connecting
On the Integrations page choose Connect on Google Calendar, sign in to Google and allow access. Under Advanced you can use your own Google OAuth app instead of Sapilon’s.
You choose these permissions while connecting:
-
See all calendars (on by default)
-
Events your app creates appear under the account you connect.
-
Sapilon’s Google app is still in verification: you may see an “unverified app” screen. Advanced → Bring your own OAuth app avoids it.
What your app can do
Only these requests are available; anything else is refused.
GET /users/me/calendarListGET|POST /calendars/*/eventsGET|PATCH|DELETE /calendars/*/events/*
How the agent uses it
Use integrations.request('google-calendar', …); paths are relative to https://www.googleapis.com/calendar/v3.
GET /users/me/calendarList— the calendars the account can see. Example:{ method: 'GET', path: '/users/me/calendarList' }.GET /calendars/{calendarId}/events— list events; usequery: { timeMin, timeMax, singleEvents: 'true', orderBy: 'startTime' }. Example:{ method: 'GET', path: '/calendars/primary/events', query: { timeMin: '2026-10-01T00:00:00Z' } }.POST /calendars/{calendarId}/events— create an event. Example:{ method: 'POST', path: '/calendars/primary/events', body: { summary: 'Review', start: { dateTime: '2026-10-05T10:00:00+02:00' }, end: { dateTime: '2026-10-05T11:00:00+02:00' } } }.GET|PATCH|DELETE /calendars/{calendarId}/events/{eventId}— read, change or delete one event. Example:{ method: 'PATCH', path: '/calendars/primary/events/abc123', body: { summary: 'Moved' } }.
Times are RFC 3339 with an explicit time zone. Percent-encode calendar ids that contain @ or # inside the path segment.
More from Google: https://developers.google.com/calendar/api