Skip to main content

Google Calendar

Google Calendar is Google's cloud-based calendar and scheduling application, part of the Google Workspace suite, used to create, organize, and share events, meetings, and reminders. The Google Calendar API is a RESTful interface that exposes calendars, events, attendees, access control rules, and notification settings to applications outside the Google Calendar web and mobile clients. This connector provides read-only access to a wide range of calendar and event data — including recurring event rules, conference details, reminder overrides, and extended properties — for use in reporting, auditing, and analytics workflows.

Google Calendar icon

Power end-to-end data operations for your Google Calendar API with Nexla. Our bi-directional Google Calendar connector is purpose-built for Google Calendar, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Google Calendar or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Google Calendar workflows fast, secure, and fully governed.

Features

Type: API

SourceDestination

  • Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
  • Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
  • API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
  • Request optimization with intelligent batching, retry, and caching to minimize API calls and costs

Prerequisites

The Google Calendar connector authenticates using OAuth 2.0 through Nexla's own registered Google OAuth application, so you do not need to create a Google Cloud project or register an OAuth client yourself. Before creating a credential in Nexla, you only need a Google account that has access to the calendar(s) you want Nexla to read from.

When you authorize the credential, Google's consent screen will ask you to grant Nexla the https://www.googleapis.com/auth/calendar.readonly scope, which grants read-only access to your calendars, events, and related calendar metadata — Nexla cannot create, modify, or delete anything in your Google Calendar with this connector. The authorized Google account determines which calendars are visible through the credential; if you need data from calendars owned by other Google accounts, either share those calendars with the authorizing account first or create a separate credential for each account. For background on the API and the data it exposes, see the Google Calendar API overview.

Authenticate

Credentials required

Google Calendar API OAuth Configuration using Nexla's managed OAuth flow

FieldRequiredSecretDescription
API VersionYesNoVersion of the Google Calendar API to use (default v3). Allowed values: v3

Create a credential in Nexla

  1. After selecting the data source type, click the Add Credential tile to open the Add New Credential overlay.

  2. Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.

  3. Click the Authorize button to start the OAuth 2.0 authorization flow. You will be redirected to Google's sign-in and consent screen.

  4. Sign in with the Google account whose calendar data Nexla should access, review the requested calendar.readonly permission, and click Allow to grant Nexla access. You will be redirected back to Nexla, and the credential will be marked as authorized.

    The authorized Google account determines which calendars are accessible through this credential. If you need to read calendars belonging to multiple Google accounts, create a separate credential for each account.

  5. Enter the Google Calendar API version to use in the API Version field. v3 is the default and only supported value.

  6. Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source creation.

Use as a data source

To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Google Calendar connector tile, then select the credential that will be used to connect to Google Calendar, and click Next; or, create a new Google Calendar credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Google Calendar endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.

Calendar List

Retrieves the authenticated user's calendar list, including subscription details and metadata for every calendar the user has added — primary, shared, and subscribed calendars alike.

Each entry includes the calendar's ID, summary (name), color, and access role. The calendar ID returned by this endpoint can be used to configure the Calendar ID field on other endpoint templates. For details, see the Google Calendar API calendarList.list reference.

User Settings

Retrieves the authenticated user's Google Calendar settings and preferences, such as the account's default time zone and date/time formatting options.

For details on the available settings fields, see the Google Calendar API settings.list reference.

Calendar Events

Retrieves calendar events with full details — including attendees, attachments, and conference data — across every calendar in the user's calendar list.

  • In the Start Date field, enter the lower bound for event start time in ISO format. Use a macro such as 20251001T00 for 6 months ago, or supply a fixed RFC 3339 timestamp. This field is required.
  • In the End Date (Time Max) field, enter the upper bound for event end time in ISO format. Use a macro such as 20261001T00 for 12 months ahead, or supply a fixed RFC 3339 timestamp. This field is required.

Events are returned with singleEvents=true, so recurring events are expanded into individual instances, and deleted events are included via showDeleted=true. For details, see the Google Calendar API events.list reference.

Access Control Rules

Retrieves the access control (ACL) rules for every calendar in the user's calendar list, describing which users or groups can access each calendar and at what permission level.

For details on the ACL resource and its role values, see the Google Calendar API acl.list reference.

Calendar Metadata

Retrieves detailed metadata for every calendar in the user's calendar list, including default reminders and conference settings configured on each calendar.

For the full set of returned fields, see the Google Calendar API calendars.get reference.

Calendar Colors

Retrieves the palette of available calendar and event color definitions that Google Calendar makes available for labeling calendars and events.

This endpoint does not require additional configuration. For details, see the Google Calendar API colors.get reference.

Calendar Notification Settings

Retrieves the notification settings configured on each calendar in the user's calendar list, such as which calendar events trigger email or popup notifications.

This endpoint does not require additional configuration; it iterates over every calendar the user has access to. For details on the notification resource shape, see the Google Calendar API reference.

Default Calendar Reminders

Retrieves the default reminder settings configured for each calendar in the user's calendar list.

This endpoint does not require additional configuration; it iterates over every calendar the user has access to. For details on the reminders resource shape, see the Google Calendar API reference.

Allowed Conference Solution Types

Retrieves the conference solution types (such as Google Meet) that are allowed to be used for events on each calendar in the user's calendar list.

This endpoint does not require additional configuration; it iterates over every calendar the user has access to. For details on the conference properties resource shape, see the Google Calendar API reference.

Event Attendees

Extracts attendee information from calendar events across every calendar in the user's calendar list, for events that have attendees.

  • In the Historical Start Date field, enter the start date for events to include. Use a macro such as {'{now-6}'} for 6 months ago, or a fixed timestamp in YYYY-MM-DDTHH:mm:ssZ format. This field is required.
  • In the Future End Date field, enter the end date for events to include. Use a macro such as {'{now+12}'} for 12 months ahead, or a fixed timestamp in YYYY-MM-DDTHH:mm:ssZ format. This field is required.

Only events that have an attendees array populated will produce records. For details, see the Google Calendar API events.list reference.

Event Attachments

Extracts file attachments from calendar events across every calendar in the user's calendar list, for events that have attachments.

  • In the Historical Start Date field, enter the start date for events to include. Use a macro such as {'{now-6}'} for 6 months ago, or a fixed timestamp in YYYY-MM-DDTHH:mm:ssZ format. This field is required.
  • In the Future End Date field, enter the end date for events to include. Use a macro such as {'{now+12}'} for 12 months ahead, or a fixed timestamp in YYYY-MM-DDTHH:mm:ssZ format. This field is required.

Only events that have an attachments array populated will produce records. For details, see the Google Calendar API events.list reference.

Event Recurrence Rules

Extracts recurrence rules (RRULE) from recurring calendar events across every calendar in the user's calendar list.

  • In the Historical Start Date field, enter the start date for events to include. Use a macro such as {'{now-6}'} for 6 months ago, or a fixed timestamp in YYYY-MM-DDTHH:mm:ssZ format. This field is required.
  • In the Future End Date field, enter the end date for events to include. Use a macro such as {'{now+12}'} for 12 months ahead, or a fixed timestamp in YYYY-MM-DDTHH:mm:ssZ format. This field is required.

This endpoint queries with singleEvents=false, so recurring events are returned as their master event with the recurrence array intact, rather than expanded into individual instances. For details, see the Google Calendar API events.list reference.

Event Reminder Overrides

Extracts custom reminder overrides set on individual events, across every calendar in the user's calendar list, for events that override the calendar's default reminders.

  • In the Historical Start Date field, enter the start date for events to include. Use a macro such as {'{now-6}'} for 6 months ago, or a fixed timestamp in YYYY-MM-DDTHH:mm:ssZ format. This field is required.
  • In the Future End Date field, enter the end date for events to include. Use a macro such as {'{now+12}'} for 12 months ahead, or a fixed timestamp in YYYY-MM-DDTHH:mm:ssZ format. This field is required.

Only events with a populated reminders.overrides array will produce records. For details, see the Google Calendar API events.list reference.

Conference Entry Points

Extracts conference call entry points — such as Google Meet links and dial-in numbers — from calendar events across every calendar in the user's calendar list.

  • In the Historical Start Date field, enter the start date for events to include. Use a macro such as {'{now-6}'} for 6 months ago, or a fixed timestamp in YYYY-MM-DDTHH:mm:ssZ format. This field is required.
  • In the Future End Date field, enter the end date for events to include. Use a macro such as {'{now+12}'} for 12 months ahead, or a fixed timestamp in YYYY-MM-DDTHH:mm:ssZ format. This field is required.

Only events with a populated conferenceData.entryPoints array will produce records. For details, see the Google Calendar API events.list reference.

Event Private Extended Properties

Extracts private extended properties from calendar events across every calendar in the user's calendar list — custom key/value data set by the application that created the event, visible only to that application.

  • In the Historical Start Date field, enter the start date for events to include. Use a macro such as {'{now-6}'} for 6 months ago, or a fixed timestamp in YYYY-MM-DDTHH:mm:ssZ format. This field is required.
  • In the Future End Date field, enter the end date for events to include. Use a macro such as {'{now+12}'} for 12 months ahead, or a fixed timestamp in YYYY-MM-DDTHH:mm:ssZ format. This field is required.

Only events with a populated extendedProperties.private object will produce records. For details, see the Google Calendar API events.list reference.

Event Shared Extended Properties

Extracts shared extended properties from calendar events across every calendar in the user's calendar list — custom key/value data that is visible to all attendees of the event.

  • In the Historical Start Date field, enter the start date for events to include. Use a macro such as {'{now-6}'} for 6 months ago, or a fixed timestamp in YYYY-MM-DDTHH:mm:ssZ format. This field is required.
  • In the Future End Date field, enter the end date for events to include. Use a macro such as {'{now+12}'} for 12 months ahead, or a fixed timestamp in YYYY-MM-DDTHH:mm:ssZ format. This field is required.

Only events with a populated extendedProperties.shared object will produce records. For details, see the Google Calendar API events.list reference.

Event Gadget Preferences

Extracts gadget preferences from calendar events across every calendar in the user's calendar list — configuration data for the legacy Google Calendar gadget embedded on an event.

  • In the Historical Start Date field, enter the start date for events to include. Use a macro such as {'{now-6}'} for 6 months ago, or a fixed timestamp in YYYY-MM-DDTHH:mm:ssZ format. This field is required.
  • In the Future End Date field, enter the end date for events to include. Use a macro such as {'{now+12}'} for 12 months ahead, or a fixed timestamp in YYYY-MM-DDTHH:mm:ssZ format. This field is required.

Only events with a populated gadget.preferences object will produce records. For details, see the Google Calendar API events.list reference.

Calendar Events (Incremental Sync)

Incrementally synchronizes calendar events using the updatedMin parameter, returning only events that have been created or modified since the supplied timestamp, across every calendar in the user's calendar list.

  • In the Updated Since (Incremental) field, enter the timestamp after which events must have been updated to be included. Use a macro such as {'{now-7[dd]}'} for the last 7 days, or a fixed RFC 3339 timestamp. This field is required.

Deleted events are included (showDeleted=true), which is useful for detecting cancellations in downstream systems. For details, see the Google Calendar API events.list reference.

Get Event by ID

Retrieves a specific calendar event by its unique event ID.

  • In the Calendar ID field, enter the calendar identifier. Use primary for the authenticated user's primary calendar, or provide a specific calendar ID. This field is required and defaults to primary.
  • In the Event ID field, enter the unique identifier of the event to retrieve from the specified calendar. This field is required.

Event IDs can be obtained from the Calendar Events or Calendar Events (Incremental Sync) endpoints. For details, see the Google Calendar API events.get reference.

Get Events by Calendar ID

Retrieves all events from a specific calendar using the calendar ID, rather than iterating across every calendar in the user's calendar list.

  • In the Calendar ID field, enter the calendar identifier. Use primary for the user's primary calendar, or the full calendar ID from the Calendar List endpoint. This field is required and defaults to primary.
  • In the Start Date field, enter the lower bound for event start time in ISO format (RFC 3339). This field is required.
  • In the End Date field, enter the upper bound for event end time in ISO format (RFC 3339). This field is required.

Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.

Manual configuration

Google Calendar data sources can also be manually configured to ingest data from any valid Google Calendar API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.

The base URL for the Google Calendar API v3 is https://www.googleapis.com/calendar/v3 (e.g., https://www.googleapis.com/calendar/v3/users/me/calendarList to list calendars, or https://www.googleapis.com/calendar/v3/calendars/primary/events to list events on the primary calendar). List responses wrap records in a top-level items array, so set Set Path to Data in Response to $.items[*]; single-resource responses such as calendars.get return the object at the root, so use $. The Authorization header is managed automatically by the Google Calendar credential and does not need to be added manually.

Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Google Calendar data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.