Skip to main content

Google Calendar Connector

Google Calendar Google Calendar is a time-management and scheduling calendar service developed by Google. This component allows you to create, read, update and delete events and calendars connected to your Google account.

Connections

OAuth 2.0

OAuth 2.0 connection for Google Calendar

The Google Calendar component authenticates requests through the Google Cloud Platform (GCP) OAuth 2.0 service. A GCP OAuth 2.0 app is required for the integration to authenticate and perform Google Calendar tasks on behalf of users.

Prerequisites

Setup Steps

To create a Google Calendar OAuth 2.0 app:

  1. Open the Google Calendar API console at https://console.cloud.google.com/apis/api/calendar-json.googleapis.com
  2. Click CREATE PROJECT to create a new GCP project, or select an existing project.
  3. Enable the Google Calendar API for the project by clicking ENABLE.
  4. On the sidebar, select Credentials.
  5. Configure the OAuth 2.0 Consent Screen (the page that asks "Do you want to allow (Your Company) to access Google Calendar on your behalf?"). Click CONFIGURE CONSENT SCREEN.
    1. Choose a User Type of External so the app will be available to customers.
    2. Fill out the OAuth consent screen with an app name (company or product name), support email, app logo, domain, etc.
    3. Domains can be ignored for now.
    4. On the next page, add the scope https://www.googleapis.com/auth/calendar.
    5. Enter some test users for testing purposes. The app will only work for those testing users until it is "verified" by Google. When ready for verification (Google verifies privacy policy statement, etc), click PUBLISH APP on the OAuth consent screen. This will allow customers to authorize the integration to access their Google Calendar.
  6. Once the "Consent Screen" is configured, open the Credentials page from the sidebar again.
  7. Click +CREATE CREDENTIALS and select OAuth client ID.
    1. Under Application type select Web application.
    2. Under Authorized redirect URIs enter the OAuth 2.0 callback URL: https://oauth2.integrations.acme.com/callback
    3. Click CREATE.
  8. Copy the Client ID and Client Secret that are generated.

Configure the Connection

App Verification

Google requires OAuth apps that request access to user data to pass a verification review before being deployed at scale. This process ensures the app complies with Google's API Services User Data Policy, accurately represents its functionality, and handles user data responsibly.

Google OAuth apps pass through three stages before they are ready for production use.

Testing (unpublished): The app is only accessible to users manually added as test users in the OAuth consent screen. Up to 100 test users are allowed — all other users receive an error. This is the expected state during initial development.

Published, unverified: After publishing the app, all Google users can authenticate. However, for sensitive scopes, users see a "This app isn't verified" warning. Users can proceed by clicking AdvancedGo to [app name] (unsafe), but this warning reduces trust and may be blocked by organizations with strict Google Workspace policies.

Verified: Google has reviewed and approved the app. No warning is shown. Verification is required before deploying to production users.

Publishing the App

Publishing is required before any users outside the test list can authenticate:

  1. In the Google Cloud Console, navigate to APIs & ServicesOAuth consent screen
  2. Click PUBLISH APP and confirm

Requesting Verification

The scopes used by this component are classified as sensitive by Google. Submitting for verification removes the "This app isn't verified" warning:

  1. On the OAuth consent screen, click Prepare for verification
  2. Provide a privacy policy URL, authorized domain, and app logo
  3. Submit for review — Google typically responds within several weeks

Refer to Google's OAuth consent screen documentation for the full verification requirements.

This connection uses OAuth 2.0, a common authentication mechanism for integrations. Read about how OAuth 2.0 works here.

InputCommentsDefault
ScopesSpace-delimited list of OAuth 2.0 scopes. See Google Calendar API scopes for available options.https://www.googleapis.com/auth/calendar
Client IDClient ID from your Google Cloud Platform OAuth 2.0 credentials.
Client SecretClient Secret from your Google Cloud Platform OAuth 2.0 credentials.

Triggers

Calendar Change Events

Receive change notifications for a Google Calendar. Automatically creates and manages a Google Calendar push notification subscription when the instance is deployed, and removes the subscription when the instance is deleted.

InputCommentsDefault
ConnectionThe Google Calendar connection to use.
Calendar IDThe calendar to monitor for changes.

New and Updated Events

Checks for new and updated calendar events on a configured schedule.

InputCommentsDefault
ConnectionThe Google Calendar connection to use.
Calendar IDThe calendar to poll for event changes.

Actions

Create Calendar

Create a new calendar

InputCommentsDefault
SummaryThe title or summary of the event.
DescriptionA detailed description of the event.
Time ZoneThe timezone of the event in IANA Time Zone Database format. See IANA timezone list.
ConnectionThe Google Calendar connection to use.

Create Event

Create a new event in a given calendar

InputCommentsDefault
Calendar IDThe unique identifier of the calendar. Use 'primary' for the user's primary calendar.
SummaryThe title or summary of the event.
DescriptionA detailed description of the event.
Time ZoneThe timezone of the event in IANA Time Zone Database format. See IANA timezone list.
Start TimeThe start time of the event in ISO 8601 format with timezone offset.
End TimeThe end time of the event in ISO 8601 format with timezone offset.
Event LocationThe physical or virtual location of the event.
AttendeesArray of attendee objects with email addresses and optional flags. See Google Calendar Events API for full schema.
[
{
"email": "john.doe@example.com",
"optional": false
},
{
"email": "jane.smith@example.com",
"optional": true
}
]
Remind MethodHow to send the event reminder. Only used when 'Default Reminder' is false.
Default ReminderWhen true, the event uses the default reminder settings from the calendar.false
Remind Before (minutes)Number of minutes before the event to send the reminder. Only used when 'Default Reminder' is false.
Add Conference EventWhen true, creates a Google Meet conference link for the event.false
ConnectionThe Google Calendar connection to use.
Send UpdatesWhether to send notifications about the creation of the new event. Note that some emails might still be sent. The default is false.

Delete Calendar

Delete an existing calendar by Id

InputCommentsDefault
Calendar IDThe unique identifier of the calendar. Use 'primary' for the user's primary calendar.
ConnectionThe Google Calendar connection to use.

Delete Event

Delete an event by an Id

InputCommentsDefault
Calendar IDThe unique identifier of the calendar. Use 'primary' for the user's primary calendar.
Event IDThe unique identifier of the event.
ConnectionThe Google Calendar connection to use.
Send UpdatesGuests who should receive notifications about the deletion of the event.

Get Calendar

Get the information and metadata of a calendar by Id

InputCommentsDefault
ConnectionThe Google Calendar connection to use.
Calendar IDThe unique identifier of the calendar. Use 'primary' for the user's primary calendar.

Get Event

Get the information and metadata of an event by Id

InputCommentsDefault
Calendar IDThe unique identifier of the calendar. Use 'primary' for the user's primary calendar.
Event IDThe unique identifier of the event.
ConnectionThe Google Calendar connection to use.

List Calendars

List all calendars

InputCommentsDefault
Page TokenPagination token returned from a previous request to retrieve the next page of results.
Max ResultsMaximum number of results to return (1-250).
ConnectionThe Google Calendar connection to use.
Fetch AllWhen true, fetches all pages of results, ignoring the 'Max Results' and 'Page Token' inputs.false

List Events

List all events in a given calendar

InputCommentsDefault
ConnectionThe Google Calendar connection to use.
Calendar IDThe unique identifier of the calendar. Use 'primary' for the user's primary calendar.
Fetch AllWhen true, fetches all pages of results, ignoring the 'Max Results' and 'Page Token' inputs.false
Max ResultsMaximum number of results to return (1-250).
Page TokenPagination token returned from a previous request to retrieve the next page of results.
Sync TokenToken for retrieving only resources modified since the last sync request.
Max AttendeesMaximum number of attendees to include in the response. If there are more attendees, only the participant is returned.
Order ByThe order of events returned in the result. Default is an unspecified, stable order.
QueryFree text search terms to find events matching in summary, description, location, or attendee fields.
Show DeletedWhen true, includes deleted events in the response.false
Show Hidden InvitationsWhen true, includes hidden invitations in the response.false
Single EventsWhen true, expands recurring events into instances and returns only single one-off events and instances, not the underlying recurring events.false
Time MinLower bound for filtering events by end time. Must be in ISO 8601 format with timezone offset.
Time MaxUpper bound for filtering events by start time. Must be in ISO 8601 format with timezone offset.
Updated MinLower bound for filtering by last modification time (RFC 3339 format). Deleted entries since this time are always included regardless of 'Show Deleted' setting.
Time ZoneTime zone used in the response.

Raw Request

Send raw HTTP request to Google Calendar

InputCommentsDefault
ConnectionThe Google Calendar connection to use.
URLInput the path only (/colors), The base URL is already included (https://www.googleapis.com/calendar/v3). For example, to connect to https://www.googleapis.com/calendar/v3/colors, only /colors is entered in this field.
MethodThe HTTP method to use.
DataThe HTTP body payload to send to the URL.
Form DataThe Form Data to be sent as a multipart form upload.
File DataFile Data to be sent as a multipart form upload.
File Data File NamesFile names to apply to the file data inputs. Keys must match the file data keys above.
Query ParameterA list of query parameters to send with the request. This is the portion at the end of the URL similar to ?key1=value1&key2=value2.
HeaderA list of headers to send with the request.
Response TypeThe type of data you expect in the response. You can request json, text, or binary data.json
TimeoutThe maximum time that a client will await a response to its request
Retry Delay (ms)The delay in milliseconds between retries. This is used when 'Use Exponential Backoff' is disabled.0
Retry On All ErrorsIf true, retries on all erroneous responses regardless of type. This is helpful when retrying after HTTP 429 or other 3xx or 4xx errors. Otherwise, only retries on HTTP 5xx and network errors.false
Max Retry CountThe maximum number of retries to attempt. Specify 0 for no retries.0
Use Exponential BackoffSpecifies whether to use a pre-defined exponential backoff strategy for retries. When enabled, 'Retry Delay (ms)' is ignored.false

Update Event

Update the information and metadata of an existing event

InputCommentsDefault
Calendar IDThe unique identifier of the calendar. Use 'primary' for the user's primary calendar.
Event IDThe unique identifier of the event.
SummaryThe title or summary of the event.
DescriptionA detailed description of the event.
Time ZoneThe timezone of the event in IANA Time Zone Database format. See IANA timezone list.
Start TimeThe start time of the event in ISO 8601 format with timezone offset.
End TimeThe end time of the event in ISO 8601 format with timezone offset.
Event LocationThe physical or virtual location of the event.
AttendeesArray of attendee objects with email addresses and optional flags. See Google Calendar Events API for full schema.
[
{
"email": "john.doe@example.com",
"optional": false
},
{
"email": "jane.smith@example.com",
"optional": true
}
]
Default ReminderWhen true, the event uses the default reminder settings from the calendar.false
Remind MethodHow to send the event reminder. Only used when 'Default Reminder' is false.
Remind Before (minutes)Number of minutes before the event to send the reminder. Only used when 'Default Reminder' is false.
ConnectionThe Google Calendar connection to use.
Send UpdatesGuests who should receive notifications about the event update (for example, title changes, etc.).