Use Google Calendar to manage events and calendars, invite attendees, inspect availability, and configure sharing. Calendar event triggers can start workflows when events change.
Sim requests these scopes when someone connects a Google Calendar account. For a self-hosted deployment, register your own app with the provider using the settings below. See Integrations and OAuth for setup.
Setting Value Redirect URI <NEXT_PUBLIC_APP_URL>/api/auth/oauth2/callback/google-calendarEnvironment variables GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET
Scope Description https://www.googleapis.com/auth/userinfo.emailView email address https://www.googleapis.com/auth/userinfo.profileView basic profile info https://www.googleapis.com/auth/calendarView and manage calendar
Manage events, calendars, attendees, availability, and sharing. Event triggers can start workflows.
Create a new event in Google Calendar.
Inputs and outputsParameter Type Required Description calendarIdstring No Google Calendar ID (e.g., primary or calendar@group.calendar.google.com ) summarystring Yes Event title/summary descriptionstring No Event description locationstring No Event location startDateTimestring Yes Start time. Use a datetime with timezone offset (2025-06-03T10:00:00-08:00) or a date (2025-06-03) for an all-day event endDateTimestring Yes End time. Use a datetime with timezone offset (2025-06-03T11:00:00-08:00) or a date (2025-06-04) for an all-day event timeZonestring No IANA time zone (e.g., America/Los_Angeles). Used as-is when provided. For recurring events a time zone is required to expand the recurrence correctly; for one-off events it is only needed when the datetime omits a UTC offset (a naive datetime defaults to America/Los_Angeles). attendeesarray No Array of attendee email addresses recurrencestring No Recurrence rule(s) in RFC 5545 format (e.g., RRULE:FREQ=WEEKLY;BYDAY=MO,WE,FR). Separate multiple rules with newlines. addGoogleMeetboolean No Attach a Google Meet video conference link to the event sendUpdatesstring No How to send updates to attendees: all, externalOnly, or none
Parameter Type Description idstring Event ID htmlLinkstring Event link hangoutLinkstring Google Meet link statusstring Event status summarystring Event title descriptionstring Event description locationstring Event location recurrencejson Recurrence rules startjson Event start endjson Event end attendeesjson Event attendees creatorjson Event creator organizerjson Event organizer
List events from Google Calendar.
Inputs and outputsParameter Type Required Description calendarIdstring No Google Calendar ID (e.g., primary or calendar@group.calendar.google.com ) timeMinstring No Lower bound for events (RFC3339 timestamp, e.g., 2025-06-03T00:00:00Z) timeMaxstring No Upper bound for events (RFC3339 timestamp, e.g., 2025-06-04T00:00:00Z) qstring No Free-text search across event summary, description, location, attendees, and organizer maxResultsnumber No Maximum number of events to return (max 2500) pageTokenstring No Token for retrieving the next page of results orderBystring No Order of events: startTime (chronological, the default) or updated (last-modified). startTime is always valid here because singleEvents is set.
Parameter Type Description nextPageTokenstring Next page token timeZonestring Calendar time zone eventsjson List of events
Get a specific event from Google Calendar.
Inputs and outputsParameter Type Required Description calendarIdstring No Google Calendar ID (e.g., primary or calendar@group.calendar.google.com ) eventIdstring Yes Google Calendar event ID to retrieve
Parameter Type Description idstring Event ID htmlLinkstring Event link statusstring Event status summarystring Event title descriptionstring Event description locationstring Event location startjson Event start endjson Event end attendeesjson Event attendees creatorjson Event creator organizerjson Event organizer
Update an existing event in Google Calendar.
Inputs and outputsParameter Type Required Description calendarIdstring No Google Calendar ID (e.g., primary or calendar@group.calendar.google.com ) eventIdstring Yes Google Calendar event ID to update summarystring No New event title/summary descriptionstring No New event description locationstring No New event location startDateTimestring No New start time. Use a datetime with timezone offset (2025-06-03T10:00:00-08:00) or a date (2025-06-03) for an all-day event endDateTimestring No New end time. Use a datetime with timezone offset (2025-06-03T11:00:00-08:00) or a date (2025-06-04) for an all-day event timeZonestring No IANA time zone (e.g., America/Los_Angeles) applied to the start/end times provided in this update. Provide a new start and/or end time to change the time zone; a time zone on its own is not applied. Required for recurring events to expand the recurrence correctly. attendeesarray No Array of attendee email addresses. When one or more emails are provided, they replace the existing attendee list. Leaving this empty keeps the current attendees unchanged (it does not clear them). recurrencestring No Recurrence rule(s) in RFC 5545 format (e.g., RRULE:FREQ=WEEKLY;BYDAY=MO,WE,FR). Separate multiple rules with newlines. When provided, replaces the event's recurrence; leaving it empty keeps the existing recurrence unchanged. Requires a timeZone for timed events. addGoogleMeetboolean No Attach a Google Meet video conference link to the event sendUpdatesstring No How to send updates to attendees: all, externalOnly, or none
Parameter Type Description idstring Event ID htmlLinkstring Event link hangoutLinkstring Google Meet link statusstring Event status summarystring Event title descriptionstring Event description locationstring Event location recurrencejson Recurrence rules startjson Event start endjson Event end attendeesjson Event attendees creatorjson Event creator organizerjson Event organizer
Delete an event from Google Calendar.
Inputs and outputsParameter Type Required Description calendarIdstring No Google Calendar ID (e.g., primary or calendar@group.calendar.google.com ) eventIdstring Yes Google Calendar event ID to delete sendUpdatesstring No How to send updates to attendees: all, externalOnly, or none
Parameter Type Description eventIdstring Deleted event ID deletedboolean Whether deletion was successful
Move an event to a different calendar.
Inputs and outputsParameter Type Required Description calendarIdstring No Source Google Calendar ID (e.g., primary or calendar@group.calendar.google.com ) eventIdstring Yes Google Calendar event ID to move destinationCalendarIdstring Yes Destination Google Calendar ID sendUpdatesstring No How to send updates to attendees: all, externalOnly, or none
Parameter Type Description idstring Event ID htmlLinkstring Event link statusstring Event status summarystring Event title descriptionstring Event description locationstring Event location startjson Event start endjson Event end attendeesjson Event attendees creatorjson Event creator organizerjson Event organizer
Get instances of a recurring event from Google Calendar.
Inputs and outputsParameter Type Required Description calendarIdstring No Google Calendar ID (e.g., primary or calendar@group.calendar.google.com ) eventIdstring Yes Recurring event ID to get instances of timeMinstring No Lower bound for instances (RFC3339 timestamp, e.g., 2025-06-03T00:00:00Z) timeMaxstring No Upper bound for instances (RFC3339 timestamp, e.g., 2025-06-04T00:00:00Z) maxResultsnumber No Maximum number of instances to return (default 250, max 2500) pageTokenstring No Token for retrieving subsequent pages of results
Parameter Type Description nextPageTokenstring Next page token timeZonestring Calendar time zone instancesjson List of recurring event instances
List all calendars in the user's calendar list.
Inputs and outputsParameter Type Required Description minAccessRolestring No Minimum access role for returned calendars: freeBusyReader, reader, writer, or owner maxResultsnumber No Maximum number of calendars to return (default 100, max 250) pageTokenstring No Token for retrieving subsequent pages of results
Parameter Type Description nextPageTokenstring Next page token calendarsarray List of calendars ↳ id string Calendar ID ↳ summary string Calendar title ↳ description string Calendar description ↳ location string Calendar location ↳ timeZone string Calendar time zone ↳ accessRole string Access role for the calendar ↳ backgroundColor string Calendar background color ↳ foregroundColor string Calendar foreground color ↳ primary boolean Whether this is the primary calendar ↳ hidden boolean Whether the calendar is hidden ↳ selected boolean Whether the calendar is selected
Create events from natural language text.
Inputs and outputsParameter Type Required Description calendarIdstring No Google Calendar ID (e.g., primary or calendar@group.calendar.google.com ) textstring Yes Natural language text describing the event (e.g., "Meeting with John tomorrow at 3pm") attendeesarray No Array of attendee email addresses (comma-separated string also accepted) sendUpdatesstring No How to send updates to attendees: all, externalOnly, or none
Parameter Type Description idstring Event ID htmlLinkstring Event link statusstring Event status summarystring Event title descriptionstring Event description locationstring Event location startjson Event start endjson Event end attendeesjson Event attendees creatorjson Event creator organizerjson Event organizer
Invite attendees to an existing Google Calendar event.
Inputs and outputsParameter Type Required Description calendarIdstring No Google Calendar ID (e.g., primary or calendar@group.calendar.google.com ) eventIdstring Yes Google Calendar event ID to invite attendees to attendeesarray Yes Array of attendee email addresses to invite sendUpdatesstring No How to send updates to attendees: all, externalOnly, or none (defaults to all) replaceExistingboolean No Whether to replace existing attendees or add to them (defaults to false)
Parameter Type Description idstring Event ID htmlLinkstring Event link statusstring Event status summarystring Event title descriptionstring Event description locationstring Event location startjson Event start endjson Event end attendeesjson Event attendees creatorjson Event creator organizerjson Event organizer
RSVP to a Google Calendar event (accept, decline, or tentative) as the connected account. Only your own response changes; other guests are left untouched.
Inputs and outputsParameter Type Required Description calendarIdstring No Google Calendar ID the invitation appears on (e.g., primary or calendar@group.calendar.google.com ) eventIdstring Yes Google Calendar event ID to respond to. Use a recurring-event instance ID (as returned by List Events or Get Recurring Instances) to respond to a single occurrence; the series ID responds to every occurrence. responseStatusstring Yes Your response: accepted, declined, or tentative commentstring No Optional note to include with your response sendUpdatesstring No Who to notify about your response: all, externalOnly, or none
Parameter Type Description idstring Event ID htmlLinkstring Event link statusstring Event status summarystring Event title startjson Event start endjson Event end responseStatusstring Your confirmed response (accepted, declined, or tentative) commentstring Your response comment attendeesjson Event attendees organizerjson Event organizer
Query free/busy information for one or more Google Calendars.
Inputs and outputsParameter Type Required Description calendarIdsstring Yes Comma-separated calendar IDs to query (e.g., "primary,other@example.com ") timeMinstring Yes Start of the time range (RFC3339 timestamp, e.g., 2025-06-03T00:00:00Z) timeMaxstring Yes End of the time range (RFC3339 timestamp, e.g., 2025-06-04T00:00:00Z) timeZonestring No IANA time zone (e.g., "UTC", "America/New_York"). Defaults to UTC.
Parameter Type Description timeMinstring Start of the queried time range timeMaxstring End of the queried time range calendarsjson Per-calendar free/busy data with busy periods and any errors
Create a new secondary calendar.
Inputs and outputsParameter Type Required Description summarystring Yes Title of the new calendar descriptionstring No Description of the new calendar locationstring No Geographic location of the calendar as free-form text timeZonestring No Time zone of the calendar as an IANA name (e.g., America/Los_Angeles)
Parameter Type Description idstring Calendar ID summarystring Calendar title descriptionstring Calendar description locationstring Calendar location timeZonestring Calendar time zone
Update a secondary calendar's metadata.
Inputs and outputsParameter Type Required Description calendarIdstring No Calendar ID to update (e.g., primary or calendar@group.calendar.google.com ) summarystring No New title for the calendar descriptionstring No New description for the calendar locationstring No New geographic location of the calendar as free-form text timeZonestring No New time zone of the calendar as an IANA name (e.g., America/Los_Angeles)
Parameter Type Description idstring Calendar ID summarystring Calendar title descriptionstring Calendar description locationstring Calendar location timeZonestring Calendar time zone
Permanently delete a secondary calendar.
Inputs and outputsParameter Type Description calendarIdstring Deleted calendar ID deletedboolean Whether deletion was successful
Grant a user, group, or domain access to a calendar.
Inputs and outputsParameter Type Required Description calendarIdstring No Calendar ID to share (e.g., primary or calendar@group.calendar.google.com ) rolestring Yes Access role to grant: freeBusyReader, reader, writer, or owner scopeTypestring Yes Type of grantee: user, group, domain, or default (public) scopeValuestring No Email (user/group), domain name (domain), or empty for default. Required unless scope type is default. sendNotificationsboolean No Whether to send a notification email about the change. Defaults to true.
Parameter Type Description idstring ACL rule ID rolestring Granted access role scopejson Grantee scope (type and value)
Change the access role granted by an existing calendar sharing (ACL) rule.
Inputs and outputsParameter Type Required Description calendarIdstring No Calendar ID to modify (e.g., primary or calendar@group.calendar.google.com ) ruleIdstring Yes ACL rule ID to update (e.g., user:person@example.com ) rolestring Yes New access role to grant: freeBusyReader, reader, writer, or owner sendNotificationsboolean No Whether to send a notification email about the change. Defaults to true.
Parameter Type Description idstring ACL rule ID rolestring Granted access role scopejson Grantee scope (type and value)
List the access control rules (sharing) for a calendar.
Inputs and outputsParameter Type Required Description calendarIdstring No Calendar ID to inspect (e.g., primary or calendar@group.calendar.google.com ) maxResultsnumber No Maximum number of ACL rules to return pageTokenstring No Token for retrieving subsequent pages of results showDeletedboolean No Include deleted ACL rules (with role "none")
Parameter Type Description nextPageTokenstring Next page token rulesarray List of ACL rules ↳ id string ACL rule ID ↳ role string Access role ↳ scope json Grantee scope (type and value)
Revoke an access control rule (sharing) from a calendar.
Inputs and outputsParameter Type Description ruleIdstring Removed ACL rule ID deletedboolean Whether removal was successful
A trigger starts a workflow when a supported event occurs in this service.
These triggers poll for new data on a schedule.
Triggers when events are created, updated, or cancelled in Google Calendar
Configuration and outputsParameter Type Required Description triggerCredentialsstring Yes Connect your Google account to access Google Calendar. calendarIdfile-selector No The calendar to monitor for event changes. manualCalendarIdstring No The calendar to monitor for event changes. eventTypeFilterstring No Only trigger for specific event types. Defaults to all events. searchTermstring No Optional: Filter events by text match across title, description, location, and attendees.
Parameter Type Description eventobject ↳ id string Calendar event ID ↳ status string Event status (confirmed, tentative, cancelled) ↳ eventType string Change type: "created", "updated", or "cancelled" ↳ summary string Event title ↳ eventDescription string Event description ↳ location string Event location ↳ htmlLink string Link to event in Google Calendar ↳ start json Event start time ↳ end json Event end time ↳ created string Event creation time ↳ updated string Event last updated time ↳ attendees json Event attendees ↳ creator json Event creator ↳ organizer json Event organizer calendarIdstring Calendar ID timestampstring Event processing timestamp in ISO format