Skip to content
GitHub

Google Calendar

The Google Calendar provider connects to the Google Calendar API via OAuth2 using the googleapis library.

List all calendars accessible to the connected Google account.

Policy operation: list_calendars

Parameters: None


List events from a specific calendar.

Policy operation: list_events

ParameterTypeRequiredDescription
calendarIdstringyesCalendar ID (e.g. "primary")
timeMinstringnoISO 8601 datetime lower bound
timeMaxstringnoISO 8601 datetime upper bound
qstringnoFree text search query
maxResultsnumbernoMax events to return (default 50)

Get details of a specific calendar event.

Policy operation: get_event

ParameterTypeRequiredDescription
calendarIdstringyesCalendar ID
eventIdstringyesEvent ID

Create a new calendar event.

Policy operation: create_event

ParameterTypeRequiredDescription
calendarIdstringyesCalendar ID
summarystringyesEvent title
descriptionstringnoEvent description
locationstringnoEvent location
startobjectyes{ dateTime: string, timeZone?: string }
endobjectyes{ dateTime: string, timeZone?: string }
attendeesarrayno[{ email: string }]
visibilitystringno"default", "public", or "private"
guestsCanModifybooleannoWhether guests can modify
guestsCanInviteOthersbooleannoWhether guests can invite others

Update an existing calendar event.

Policy operation: update_event

ParameterTypeRequiredDescription
calendarIdstringyesCalendar ID
eventIdstringyesEvent ID
summarystringnoEvent title
descriptionstringnoEvent description
locationstringnoEvent location
startobjectno{ dateTime: string, timeZone?: string }
endobjectno{ dateTime: string, timeZone?: string }
attendeesarrayno[{ email: string }]
visibilitystringno"default", "public", or "private"
guestsCanModifybooleannoWhether guests can modify
guestsCanInviteOthersbooleannoWhether guests can invite others

Available on update_event. When enabled, the agent can only update events where the connected account is the organizer:

update_event:
allow: true
guards:
require_organizer_self: true

The default policy allows read operations and disables writes:

provider: google_calendar
account: "{account}"
operations:
list_calendars:
allow: true
list_events:
allow: true
get_event:
allow: true
create_event:
allow: false
mutations:
- field: attendees
action: delete
- field: visibility
action: set
value: default
- field: guestsCanModify
action: delete
- field: guestsCanInviteOthers
action: delete
update_event:
allow: false
guards:
require_organizer_self: true
mutations:
- field: attendees
action: delete
- field: visibility
action: delete
- field: guestsCanModify
action: delete
- field: guestsCanInviteOthers
action: delete

When you enable create_event or update_event, the default mutations provide safe defaults — attendees are stripped, and guest permissions are removed.

delete_event is not implemented. There is no code path to delete a calendar event through Gatelet, regardless of policy.

Example: read-only with constrained writes

Section titled “Example: read-only with constrained writes”
provider: google_calendar
account: me@gmail.com
operations:
list_calendars:
allow: true
list_events:
allow: true
get_event:
allow: true
create_event:
allow: true
constraints:
- field: calendarId
rule: must_equal
value: "primary"
mutations:
- field: attendees
action: delete
- field: visibility
action: set
value: "private"
update_event:
allow: true
constraints:
- field: calendarId
rule: must_equal
value: "primary"
guards:
require_organizer_self: true
mutations:
- field: attendees
action: delete