Skip to content

Scheduling

Google Calendar
API integration

Ship Scheduling features without building the integration. Full Google Calendar API access via Proxy, normalized data through Unified APIs, and 30+ MCP-ready tools for AI agents — all extensible to your exact use case.

Talk to us
Google Calendar

Use Cases

Why integrate with Google Calendar

Common scenarios for SaaS companies building Google Calendar integrations for their customers.

01

Automate interview scheduling in your ATS

Query real-time availability across multiple interviewers using free/busy data, then programmatically create interview events with attendees and conferencing links — all without your recruiters leaving your platform.

02

Power bidirectional meeting sync for your CRM

Keep your CRM timeline in lockstep with Google Calendar by watching for event changes via webhooks and syncing meeting updates, reschedules, and cancellations back to contact and deal records automatically.

03

Build native scheduling into your customer-facing product

Let your users expose bookable time slots to their clients by reading calendar availability and creating confirmed events directly, replacing the need for a separate scheduling tool.

04

Enable meeting intelligence and call recording workflows

Subscribe to calendar event changes to detect upcoming meetings with external attendees and conferencing links, so your platform can automatically join, record, and associate transcripts with the right records.

05

Sync project tasks to calendar time blocks

When users are assigned work in your project management tool, automatically create focused time blocks on their Google Calendar to protect deep work time and reduce context switching.

What You Can Build

Ship these features with Truto + Google Calendar

Concrete product features your team can ship faster by leveraging Truto’s Google Calendar integration instead of building from scratch.

01

Real-time availability engine

Use the free/busy endpoint to query multiple users' calendars simultaneously and surface open meeting slots to external parties without exposing private event details.

02

Two-way event sync with conflict detection

Combine event webhooks with incremental event listing to maintain a perfect mirror between your platform's meetings and Google Calendar, detecting and resolving conflicts in real time.

03

Multi-calendar routing picker

Let your end users choose which of their Google calendars to check for conflicts and which to push new events to, using the calendar list endpoints to present all available calendars.

04

Recurring event instance management

Expand recurring event series into individual occurrences so your platform can track attendance, notes, or status changes on a per-instance basis without breaking sync logic.

05

Automated meeting creation with conferencing links

Programmatically create calendar events with Google Meet links, attendee lists, and custom descriptions when workflows are triggered inside your product — like moving a deal stage or confirming a booking.

06

Contact-enriched meeting prep dashboard

Scan upcoming events for attendee emails, match them against contacts via the search contacts endpoints, and surface contextual prep cards before each meeting starts.

SuperAI

Google Calendar AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

list_all_googlecalendar_userinfo

Returns information about the currently authenticated user in Google Calendar.

list_all_googlecalendar_calendar_lists

Returns the calendars on the user's calendar list. You can filter the results using optional query parameters such as minAccessRole to restrict results by access level, showDeleted to include deleted calendars, and showHidden to include hidden ones.

get_single_googlecalendar_calendar_list_by_id

Retrieves detailed information about a specific calendar from the user's calendar list. It always requires the ID to fetch.

create_a_googlecalendar_calendar_list

Create an access control rule for a calendar in Google Calendar. Requires calendar id and a request body with scope type and role. Returns the created ACL rule including its id, scope, and role.

update_a_googlecalendar_calendar_list_by_id

Update an existing calendar on the user's calendar list in Google Calendar using id. Returns the updated calendar resource including etag for versioning.

delete_a_googlecalendar_calendar_list_by_id

Delete a calendar from the user's calendar list in Google Calendar. Requires calendarId as id. Returns an empty response body on success.

googlecalendar_calendar_lists_watch

Watch for changes to CalendarList resources in Google Calendar. Requires a request body with id, type, and address to create a notification channel. Returns channel id, resourceId, resourceUri, token, and expiration timestamp.

get_single_googlecalendar_calendar_by_id

Get metadata for a calendar by id in Google Calendar. Returns fields such as summary, description, timeZone, and location.

create_a_googlecalendar_calendar

Create a secondary calendar with summary in Google Calendar. Returns the created calendar's id and other calendar details.

update_a_googlecalendar_calendar_by_id

Update metadata for a calendar using id in Google Calendar. Returns updated calendar fields including etag for versioning.

delete_a_googlecalendar_calendar_by_id

Delete a secondary calendar by id in Google Calendar. Returns an empty response body on success. Use calendars.clear for clearing events on primary calendars.

googlecalendar_calendars_clear

Clear all events from the calendar identified by id in Google Calendar. This deletes all events associated with the specified calendar. The response is empty if successful.

list_all_googlecalendar_events

Returns events on the specified calendar. Use the required query parameter calendarId to specify which calendar to retrieve events from. This endpoint supports a variety of optional query parameters to filter and customize the list of returned events. You can filter by event type using eventTypes (e.g., birthday, focusTime, outOfOffice), or search for a specific event using iCalUID. Use maxAttendees to limit the number of attendees returned per event, and orderBy to sort results by startTime or updated. The privateExtendedProperty and sharedExtendedProperty parameters allow filtering events by custom key-value metadata. The q parameter performs a free text search across several fields: summary, description, location, attendee's displayName, attendee's email, organizer's displayName, organizer's email, workingLocationProperties.officeLocation.buildingId, deskId, label, and workingLocationProperties.customLocation.label. You can include deleted events using showDeleted, hidden invitations with showHiddenInvitations, or expand recurring events into single instances using singleEvents. Use timeMin and timeMax to set the date range, timeZone to define the time zone used in responses, and updatedMin to return only events updated since a specific time.

create_a_googlecalendar_event

Creates an event in the specified calendar. The calendarId is required to identify which calendar the event should be added to.

get_single_googlecalendar_event_by_id

Returns a single event on the specified calendar. It always requires an ID to fetch. Use the required parameter calendar_id to identify which calendar to retrieve the event.

update_a_googlecalendar_event_by_id

Update an event in the specified calendar. This operation always requires the ID to identify which event to update. Additionally, the calendarId is required to specify which calendar the event belongs to.

googlecalendar_events_quick_add

Create an event in Google Calendar using calendar_id and text describing the event. Returns the created event resource including id, summary, start, and end times.

googlecalendar_events_move

Move an event identified by id from calendar_id to a destination calendar in Google Calendar. Only default events can be moved. Returns the updated event resource including the updated timestamp.

delete_a_googlecalendar_event_by_id

Delete a single event on the specified calendar. The calendarId parameter is required to specify which calendar the event belongs to, and an ID is always required to perform the deletion. You can also use the optional sendUpdates parameter to control who receives a notification about the event being deleted.

googlecalendar_events_import

Import an event to a calendar in Google Calendar using calendar_id and an Events resource with required start, end, and iCalUID fields. Returns the imported event with its id and details.

googlecalendar_events_watch

Watch for changes to Events in Google Calendar for calendar_id. Returns channel id, resourceId, resourceUri, token, and expiration timestamp.

list_all_googlecalendar_event_instances

Get instances of a recurring event by calendar_id and id in Google Calendar. Returns event details including summary, start and end times, and status for each instance.

list_all_googlecalendar_free_busy

Retrieves free/busy availability information for a list of specified calendars or groups within a defined time range. You must provide timeMin and timeMax parameters to set the start and end of the interval in RFC3339 format, and items, which is a list of calendar or group IDs to query. Optionally, you can specify a timeZone to format the response (defaults to UTC), set a groupExpansionMax to limit the number of calendar identifiers returned for a group (maximum 100), and define a calendarExpansionMax to restrict how many individual calendars are included in the response (maximum 50).

list_all_googlecalendar_search_contacts

Provides a list of contacts from the authenticated user's grouped contacts that match the given search query. The required query parameter performs a prefix match on fields such as names, nickNames, emailAddresses, phoneNumbers, and organizations. The readMask parameter is also required and specifies which fields to return for each contact, using a comma-separated list in FieldMask format (e.g., names, emailAddresses, phoneNumbers, etc.). The optional sources query parameter can be used to control which source types to return.

get_single_googlecalendar_search_contact_by_id

Get information about a specific contact by id in Google Calendar. Requires personFields parameter specifying which fields to return such as names, emailAddresses, phoneNumbers, and organizations.

delete_a_googlecalendar_search_contact_by_id

Delete a contact person by id in Google Calendar. The response is empty if successful. Non-contact data will not be deleted. Mutate requests must be sent sequentially to avoid latency and failures.

list_all_googlecalendar_other_contacts

Returns a list of contacts from the authenticated user's other contacts that match the search query. The "query" parameter is required and performs a prefix match against the contact's names, emailAddresses, and phoneNumbers fields. The "readMask" parameter is also required and specifies which fields to return for each contact, such as names, emailAddresses, phoneNumbers, or metadata, using a comma-separated list in FieldMask format.

list_all_googlecalendar_acl

Get the access control list rules for the calendar with calendar_id in Google Calendar. Returns items with ACL rules including kind, etag, and tokens for pagination or synchronization.

get_single_googlecalendar_acl_by_id

Get an access control rule for a calendar in Google Calendar using calendar_id and id. Returns fields id and role representing the rule identifier and its access role.

delete_a_googlecalendar_acl_by_id

Delete an access control rule for a calendar in Google Calendar. Requires calendar_id and id. Returns an empty response body on success.

update_a_googlecalendar_acl_by_id

Update an access control rule for a calendar in Google Calendar using calendar_id and id. Returns the updated ACL resource including scope and role.

create_a_googlecalendar_acl

Create an access control rule for a calendar in Google Calendar using calendar_id. Returns the created ACL rule including role and scope details.

googlecalendar_acl_watch

Watch for changes to ACL resources for calendar identified by calendar_id in Google Calendar. Returns channel id, resourceId, resourceUri, token, and expiration timestamp.

googlecalendar_channels_stop

Stop watching resources through a channel in Google Calendar. Returns an empty response on success.

list_all_googlecalendar_colors

Get color definitions for calendars and events in Google Calendar. Returns calendar and event color IDs with their background and foreground color codes.

list_all_googlecalendar_settings

Get all user settings for the authenticated user in Google Calendar. Returns settings including id and value fields. Supports maxResults, pageToken, and syncToken for pagination and incremental sync.

get_single_googlecalendar_setting_by_id

Get a single user setting by id in Google Calendar. Returns the setting's id and value.

googlecalendar_settings_watch

Watch for changes to Settings resources in Google Calendar. Requires a request body with id, type, and address to create a notification channel. Returns channel id, resourceId, resourceUri, token, and expiration timestamp.

Why Truto

Why use Truto’s MCP server for Google Calendar

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 650+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

Unified APIs

Unified APIs for Google Calendar

Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.

Unified User Directory API

Unified Calendar API

Availability

Represents the availability of a person in a time period.

View Docs

Calendars

Represents a calendar of a user. Can have multiple events associated with it.

View Docs

Contacts

View Docs

Events

Events are the time-bound tasks that are associated with a calendar.

View Docs

Unified Search API

Search

Search endpoint for all the apps.

View Docs

How It Works

From zero to integrated

Go live with Google Calendar in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Google Calendar account

Use Truto’s frontend SDK to connect your customer’s Google Calendar account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Google Calendar

Truto’s Proxy API is a 1-to-1 mapping of the Google Calendar API. You call us, we call Google Calendar, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Google Calendar’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Google Calendar on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

What authentication method does the Google Calendar integration use?

Truto handles OAuth 2.0 authentication with Google on your behalf. Your end users go through a standard Google consent flow to grant calendar access, and Truto manages token storage, refresh, and revocation automatically.

Can I receive real-time notifications when a user's calendar changes?

Yes. Truto supports watch endpoints for events, calendar lists, ACLs, and settings. You can set up webhook channels via googlecalendar_events_watch, googlecalendar_calendar_lists_watch, and others to receive push notifications when data changes, eliminating the need for constant polling.

How does the integration handle recurring events?

You can use the list_all_googlecalendar_event_instances endpoint to expand a recurring event series into its individual occurrences. This lets you manage, update, or track each instance independently without affecting the entire series.

Can I query availability without reading full event details?

Yes. The list_all_googlecalendar_free_busy endpoint returns only busy/free time ranges for specified calendars within a time window, without exposing event titles, descriptions, or attendee lists — ideal for booking flows where privacy matters.

Which Unified APIs map to Google Calendar resources?

Google Calendar is covered by the Unified Calendar API (Events, Calendars, Availability, Contacts), the Unified User Directory API (Me for user info), and the Unified Search API. This means you can write integration code once and extend to other scheduling providers later.

Can I tag events with custom metadata to link them back to my application's records?

Yes. When creating or updating events via create_a_googlecalendar_event or update_a_googlecalendar_event_by_id, you can attach extended properties (private or shared) to events. You can then filter events by these custom keys when listing, making it straightforward to map Google Calendar events to your internal entities.

Google Calendar

Get Google Calendar integrated into your app

Our team understands what it takes to make a Google Calendar integration successful. A short, crisp 30 minute call with folks who understand the problem.

Talk to us