Skip to main content

Google Calendar

Google Calendar is Google's web-based calendar service, part of the Google Workspace suite of productivity tools. The Google Calendar API is a RESTful interface that allows applications to programmatically access, create, modify, and delete calendar data—including events, calendars, attendees, reminders, and access control lists. Widely used by individuals and organizations worldwide, Google Calendar supports features such as event scheduling, recurring events, calendar sharing, free/busy queries, and real-time push notifications for calendar changes. The API enables integration with business workflows, scheduling systems, analytics pipelines, and productivity tools that need to read or write calendar and event data.

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

Before creating a Google Calendar credential, you need a Google account with access to the calendar(s) you want to connect. The Google Calendar API uses OAuth 2.0 authentication through Nexla's own registered OAuth application, so no Google Cloud Console project or OAuth client setup is required on your part — you authorize access directly from Nexla using your Google account credentials.

During authorization, Nexla requests the https://www.googleapis.com/auth/calendar.readonly scope, which grants read-only access to your calendar and event data. For detailed information about the Google Calendar API and available scopes, refer to the Google Calendar API documentation.

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/destination 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.

OAuth 2.0 Authentication

Google Calendar API credentials in Nexla use the OAuth 2.0 authorization code flow with Nexla's public application. Most OAuth settings are pre-configured, so you only need to authorize access with your Google account.

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

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

    The OAuth 2.0 authorization flow allows Nexla to access your Google Calendar account on your behalf. You will be asked to grant permissions for the scope https://www.googleapis.com/auth/calendar.readonly, which provides read-only access to your calendar and event data. The authorized Google account determines which calendars are accessible through this credential — if you need to access calendars from multiple Google accounts, create a separate credential for each account.

API Version

  1. Enter the Google Calendar API version you wish to use in the API Version field. This is the API version that will be used for all API requests. The default and only supported value is v3.

Save the credential

  1. 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/destination 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 API connector tile, then select the credential that will be used to connect to the Google Calendar API instance, and click Next; or, create a new Google Calendar API 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 API 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. Click on an endpoint to see more information about it and how to configure your data source for this endpoint.

List Events

Retrieves a list of events from a specified Google Calendar. This is the primary endpoint for ingesting event data and is ideal for monitoring calendar activity, extracting event details for analysis, building scheduling reports, or synchronizing events with downstream systems.

  • In the Calendar ID field, enter the identifier of the calendar from which events should be retrieved. Common values include:

    • primary — the primary calendar of the authenticated user (this is the default and is appropriate for most use cases)
    • A specific calendar email address (e.g., team@example.com) for shared or group calendars
    • A calendar ID obtained from the List Calendars endpoint
  • Optionally, use the Time Min and Time Max fields to filter events by start time. Enter RFC 3339 timestamps (e.g., 2025-01-01T00:00:00Z) to restrict the result set to events occurring within a specific date range. This is particularly useful for incremental ingestion pipelines.
  • Optionally, set the Single Events parameter to true to expand recurring events into individual event instances rather than returning them as a single recurring event entry. This is recommended when downstream processing requires each occurrence as a separate record.

Events are returned in chronological order by start time when the orderBy parameter is set to startTime, which is required when singleEvents is true. For complete details on available query parameters, refer to the Google Calendar API events.list documentation.

Get Event

Retrieves the full details of a specific calendar event by its event ID. Use this endpoint when you need to fetch comprehensive information about a known event, including its description, location, attendees, conferencing details, and status.

  • In the Calendar ID field, enter the identifier of the calendar that contains the event. Use primary for the authenticated user's primary calendar, or enter a specific calendar ID.
  • In the Event ID field, enter the unique identifier of the event to retrieve. Event IDs can be obtained from the List Events endpoint or from other Google Calendar API responses. This field is required.

The event ID is a stable, unique identifier assigned by Google Calendar. It can be found in the id field of any events.list response. For additional reference, see the Google Calendar API events.get documentation.

List Calendars

Retrieves the list of calendars on the authenticated user's calendar list. Use this endpoint to discover available calendars and obtain their Calendar IDs for use with other endpoints, or to monitor which calendars a user has access to.

  • This endpoint does not require additional configuration parameters beyond selecting the template. It will return all calendars accessible to the authenticated account, including primary, shared, and subscribed calendars.
  • Each returned calendar entry includes its Calendar ID, summary (name), description, time zone, and access role. The Calendar ID from each entry can be used in the Calendar ID field of the List Events or Get Event endpoints.

The calendar list reflects the authenticated user's calendar list, not a global directory of calendars. For complete documentation, refer to the Google Calendar API calendarList.list documentation.

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 API 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/calendars/primary/events to list events, or https://www.googleapis.com/calendar/v3/users/me/calendarList to list calendars). The events.list response wraps event records in a top-level items array, so set Path to Data in Response to $.items[*]; calendar-level context such as summary and timeZone can be captured separately via Path to Metadata in Response. For incremental syncs, the timeMin query parameter can be combined with a {now-1} date/time macro to fetch only events starting after a given point in time. The Authorization header is managed automatically by the 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 API 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.

Use as a destination

Click the + icon on the Nexset that will be sent to the Google Calendar API destination, and select the Send to Destination option from the menu. Select the Google Calendar API connector from the list of available destination connectors, then select the credential that will be used to connect to the Google Calendar API organization, and click Next; or, create a new Google Calendar API credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Google Calendar API endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

Create Event

Creates a new event on the specified Google Calendar. Use this endpoint to automate event creation from data in other systems — for example, creating calendar events from CRM data, booking records, or project management tools.

  • In the Calendar ID field, enter the identifier of the calendar where the event should be created. Common values include:

    • primary — the primary calendar of the authenticated user
    • A specific calendar email address (e.g., team@example.com) for shared or group calendars
    • A calendar ID obtained from the List Calendars data source endpoint
  • Ensure your Nexset data includes the required Google Calendar event fields. At minimum, each event record must include a summary (event title) and start and end datetime values. These map to the corresponding fields in the Google Calendar API events.insert request body.
  • Optional event fields that can be included in your data include description, location, attendees (as an array of email address objects), reminders, and conferenceData for video call links.

Google Calendar requires all datetime values to be in RFC 3339 format (e.g., 2025-06-15T10:00:00-07:00) or in date-only format (e.g., 2025-06-15) for all-day events. Ensure your Nexset data transformations produce dates in the correct format before sending to this destination. For complete field definitions, refer to the Google Calendar API events.insert documentation.

Update Event

Updates an existing event on the specified Google Calendar. Use this endpoint to keep calendar events in sync with upstream data changes — for example, updating event details when a meeting time changes in a scheduling or CRM system.

  • In the Calendar ID field, enter the identifier of the calendar that contains the event to be updated. Use primary for the authenticated user's primary calendar, or enter a specific calendar ID.
  • In the Event ID field, enter the unique identifier of the event to update. This field is required. Event IDs can be obtained from the List Events or Get Event data source endpoints.
  • Include the event fields that should be updated in your Nexset data. Only the fields provided in the request body will be updated; other fields will remain unchanged (using the PATCH method behavior).

Google Calendar supports both full replacement (PUT via events.update) and partial updates (PATCH via events.patch). Nexla's Update Event template uses the PATCH approach, meaning only the fields you include in the Nexset will be modified, preserving all other existing event data. For complete details, refer to the Google Calendar API events.patch documentation.

Delete Event

Deletes a specified event from a Google Calendar. Use this endpoint to automate event removal workflows — for example, canceling calendar events when corresponding records are deleted or canceled in an upstream system.

  • In the Calendar ID field, enter the identifier of the calendar that contains the event to be deleted. Use primary for the authenticated user's primary calendar, or enter a specific calendar ID.
  • In the Event ID field, enter the unique identifier of the event to delete. This field is required. Event IDs should be included in your Nexset data, typically sourced from a prior List Events or Get Event source.

Deleting an event is a permanent action and cannot be undone via the API. If the event has attendees, Google Calendar will send cancellation notifications to attendees by default. To suppress cancellation notifications, the sendUpdates parameter can be set to none in a manual configuration. For additional details, refer to the Google Calendar API events.delete documentation.

Manual configuration

Google Calendar API destinations can also be manually configured to send data to any valid Google Calendar API endpoint. 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, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.

The base URL for the Google Calendar API v3 is https://www.googleapis.com/calendar/v3; include the Calendar ID and Event ID as path parameters for update and delete operations (e.g., .../calendars/{calendarId}/events/{eventId}). Google Calendar API endpoints accept JSON request bodies, and the Authorization and Content-Type headers are managed automatically. Most endpoints (such as events.insert and events.patch) accept only a single event per request and do not natively support bulk batch inserts — when batching is enabled, Nexla sends the batched records as individual calls within the configured batch size. For high-volume event creation, see the Google Calendar API batching documentation.

Save & activate

Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To begin sending data to the configured Google Calendar API endpoint, open the destination resource menu, and select Activate.

The Nexset data will not be sent to the Google Calendar API endpoint until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.