Google Calendar

Learn how to use Google Calendar with Composio

Overview

SLUG: GOOGLECALENDAR

Description

Google Calendar is a time management tool providing scheduling features, event reminders, and integration with email and other apps for streamlined organization

Authentication Details

client_id
stringRequired
client_secret
stringRequired
oauth_redirect_uri
stringDefaults to https://backend.composio.dev/api/v1/auth-apps/add
scopes
stringDefaults to https://www.googleapis.com/auth/calendar,https://www.googleapis.com/auth/calendar.events

Connecting to Google Calendar

Create an auth config

Use the dashboard to create an auth config for the Google Calendar toolkit. This allows you to connect multiple Google Calendar accounts to Composio for agents to use.

1

Select App

Navigate to [Google Calendar](https://platform.composio.dev?next_page=/marketplace/Google Calendar).

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Google Calendar Auth Config”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using OAuth2

1from composio import Composio
2
3# Replace these with your actual values
4googlecalendar_auth_config_id = "ac_YOUR_GOOGLECALENDAR_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/application
6
7composio = Composio()
8
9
10def authenticate_toolkit(user_id: str, auth_config_id: str):
11 connection_request = composio.connected_accounts.initiate(
12 user_id=user_id,
13 auth_config_id=auth_config_id,
14 )
15
16 print(
17 f"Visit this URL to authenticate Google Calendar: {connection_request.redirect_url}"
18 )
19
20 # This will wait for the auth flow to be completed
21 connection_request.wait_for_connection(timeout=15)
22 return connection_request.id
23
24
25connection_id = authenticate_toolkit(user_id, googlecalendar_auth_config_id)
26
27# You can also verify the connection status using:
28connected_account = composio.connected_accounts.get(connection_id)
29print(f"Connected account: {connected_account}")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the [Google Calendar toolkit’s playground](https://app.composio.dev/app/Google Calendar)

For code examples, see the Tool calling guide and Provider examples.

Tool List

Tool Name: Delete ACL Rule

Description

Deletes an access control rule from a Google Calendar. Use when you need to remove sharing permissions for a user, group, or domain.

Action Parameters

calendar_id
stringRequired
rule_id
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Get ACL Rule

Description

Retrieves a specific access control rule for a calendar. Use when you need to check permissions for a specific user, group, or domain.

Action Parameters

calendar_id
stringRequired
rule_id
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Create ACL Rule

Description

Creates an access control rule for a calendar. Use when you need to grant sharing permissions to a user, group, or domain.

Action Parameters

calendar_id
stringRequired
role
stringRequired
scope
objectRequired
send_notifications

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Patch ACL Rule

Description

Updates an existing access control rule for a calendar using patch semantics (partial update). This allows modifying specific fields without affecting other properties. IMPORTANT: The ACL rule must already exist on the calendar. This action cannot create new rules. If you receive a 404 Not Found error, the rule does not exist - use ACL insert to create it first, or use ACL list to verify available rules. Each patch request consumes three quota units. For domain-type ACL rules, if PATCH fails with 500 error, this action will automatically fallback to UPDATE method.

Action Parameters

calendar_id
stringRequired
role
rule_id
stringRequired
scope
send_notifications

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Watch ACL Changes

Description

Tool to watch for changes to ACL resources. Use when you need to set up real-time notifications for access control list modifications on a calendar.

Action Parameters

address
stringRequired
calendarId
stringRequired
id
stringRequired
maxResults
pageToken
params
showDeleted
syncToken
token
type
stringDefaults to web_hook

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Batch Events

Description

Execute up to 1000 event mutations (create/patch/delete) in one Google Calendar HTTP batch request with per-item status/results. Use this to materially reduce round-trips for bulk operations like migrations, cleanup, or large-scale updates.

Action Parameters

fail_fast
boolean
operations
arrayRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Remove Calendar from List

Description

Tool to remove a calendar from the user's calendar list. Use when you need to unsubscribe from or hide a calendar from the user's list.

Action Parameters

calendar_id
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Get Single Calendar by ID

Description

Retrieves metadata for a SINGLE specific calendar from the user's calendar list by its calendar ID. This action requires a calendarId parameter and returns details about that one calendar only. NOTE: This does NOT list all calendars. To list all calendars in the user's calendar list, use GOOGLECALENDAR_CALENDAR_LIST_LIST instead.

Action Parameters

calendarId
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Insert Calendar into List

Description

Inserts an existing calendar into the user's calendar list.

Action Parameters

background_color
color_id
color_rgb_format
default_reminders
foreground_color
hidden
id
stringRequired
notification_settings
selected
summary_override

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: List Calendar List

Description

Returns the calendars on the user's calendar list. Use when you need to retrieve all calendars visible to the authenticated user.

Action Parameters

maxResults
minAccessRole
pageToken
showDeleted
showHidden
syncToken

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Patch Calendar List Entry

Description

Updates an existing calendar on the user's calendar list using patch semantics. This method allows partial updates, modifying only the specified fields.

Action Parameters

backgroundColor
calendar_id
stringRequired
colorId
colorRgbFormat
defaultReminders
foregroundColor
hidden
notificationSettings
selected
summaryOverride

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Update Calendar List Entry

Description

Updates an existing entry on the user\'s calendar list.

Action Parameters

backgroundColor
calendar_id
stringRequired
colorId
colorRgbFormat
defaultReminders
foregroundColor
hidden
notificationSettings
selected
summaryOverride

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Watch Calendar List

Description

Watch for changes to CalendarList resources using push notifications. Use this to receive real-time updates when calendar list entries are modified.

Action Parameters

address
stringRequired
expiration
id
stringRequired
params
token
type
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Delete Calendar

Description

Deletes a secondary calendar that you own or have delete permissions on. You cannot delete your primary calendar or calendars you only have read/write access to. Use calendarList.list to find calendars with owner accessRole. For primary calendars, use calendars.clear instead.

Action Parameters

calendar_id
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Update Calendar

Description

Updates metadata for a calendar.

Action Parameters

calendarId
stringRequired
description
location
summary
stringRequired
timeZone

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Stop Channel

Description

Tool to stop watching resources through a notification channel. Use when you need to discontinue push notifications for a specific channel subscription.

Action Parameters

id
stringRequired
resourceId
stringRequired
token

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Clear Calendar

Description

Clears a primary calendar. This operation deletes all events associated with the primary calendar of an account.

Action Parameters

calendar_id
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Get Color Definitions

Description

Returns the color definitions for calendars and events. Use when you need to retrieve the available color palette for styling calendars or events.

Action Parameters

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Create Event

Description

Create a Google Calendar event using `start_datetime` plus `event_duration_hour` and `event_duration_minutes` fields to derive the end time. Requires calendar write access. The organizer is added as an attendee unless `exclude_organizer` is True. By default, attempts to create a Google Meet link for the event (create_meeting_room defaults to True). Workspace accounts will receive a Meet link, while personal Gmail accounts will gracefully fallback to creating an event without a Meet link when conference creation fails. Set create_meeting_room to False to explicitly skip Meet link creation. Example request to create event for 1 hour 30 minutes: { "calendar_id": "primary", "start_datetime": "2025-01-16T13:00:00", "timezone": "America/New_York", "event_duration_hour": 1, "event_duration_minutes": 30, "summary": "Client sync", "attendees": [{"email": "guest@example.com"}] }

Action Parameters

attendees
birthdayProperties
calendar_id
stringDefaults to primary
create_meeting_room
Defaults to True
description
eventType
stringDefaults to default
event_duration_hour
integer
event_duration_minutes
integerDefaults to 30
exclude_organizer
boolean
extended_properties
focusTimeProperties
guestsCanInviteOthers
guestsCanSeeOtherGuests
guests_can_modify
boolean
location
outOfOfficeProperties
recurrence
send_updates
start_datetime
stringRequired
summary
timezone
transparency
stringDefaults to opaque
visibility
stringDefaults to default
workingLocationProperties

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Delete event

Description

Deletes a specified event by `event_id` from a Google Calendar (`calendar_id`); this action is idempotent and raises a 404 error if the event is not found.

Action Parameters

calendar_id
stringDefaults to primary
event_id
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Create a calendar

Description

Creates a new, empty Google Calendar with the specified title (summary).

Action Parameters

summary
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Get Event

Description

Retrieves a SINGLE event by its unique event_id (REQUIRED). This action does NOT list or search events - it fetches ONE specific event when you already know its ID. If you want to list events within a time range, search for events, or filter by criteria like time_min/time_max, use GOOGLECALENDAR_EVENTS_LIST instead.

Action Parameters

calendar_id
stringDefaults to primary
event_id
stringRequired
max_attendees
time_zone

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Import Event

Description

Tool to import an event as a private copy to a calendar. Use when you need to add an existing event to a calendar using its iCalUID. Only events with eventType='default' can be imported.

Action Parameters

attachments
attendees
calendar_id
stringDefaults to primary
colorId
conferenceDataVersion
description
end
objectRequired
extendedProperties
guestsCanInviteOthers
guestsCanModify
guestsCanSeeOtherGuests
iCalUID
stringRequired
location
recurrence
reminders
sequence
source
start
objectRequired
status
summary
supportsAttachments
transparency
visibility

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Get Event Instances

Description

Returns instances of the specified recurring event.

Action Parameters

calendarId
stringRequired
eventId
stringRequired
maxAttendees
maxResults
originalStart
pageToken
showDeleted
timeMax
timeMin
timeZone

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: List Events

Description

Returns events on the specified calendar.

Action Parameters

alwaysIncludeEmail
calendarId
stringDefaults to primary
eventTypes
iCalUID
maxAttendees
maxResults
orderBy
pageToken
privateExtendedProperty
q
sharedExtendedProperty
showDeleted
showHiddenInvitations
singleEvents
syncToken
timeMax
timeMin
timeZone
updatedMin

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: List Events from All Calendars

Description

Return a unified event list across all calendars in the user's calendar list for a given time range. Use when you need a single view of all events across multiple calendars.

Action Parameters

calendar_ids
event_types
max_results_per_calendar
q
show_deleted
boolean
single_events
booleanDefaults to True
time_max
stringRequired
time_min
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Move Event

Description

Moves an event to another calendar, i.e., changes an event's organizer.

Action Parameters

calendar_id
stringRequired
destination
stringRequired
event_id
stringRequired
send_updates

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Watch Events

Description

Watch for changes to Events resources.

Action Parameters

address
stringRequired
calendarId
stringRequired
id
stringRequired
params
payload
token
type
stringDefaults to web_hook

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Find event

Description

Finds events in a specified Google Calendar using text query, time ranges (event start/end, last modification), and event types; ensure `timeMin` is not chronologically after `timeMax` if both are provided.

Action Parameters

calendar_id
stringDefaults to primary
event_types
arrayDefaults to ['birthday', 'default', 'focusTime', 'outOfOffice', 'workingLocation']
max_results
integerDefaults to 10
order_by
page_token
query
show_deleted
single_events
booleanDefaults to True
timeMax
timeMin
updated_min

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Find free slots

Description

Finds both free and busy time slots in Google Calendars for specified calendars within a defined time range (defaults to the current day UTC if `time_min`/`time_max` are omitted). Returns busy intervals enriched with event details and calculates free slots by finding gaps between busy periods; `time_min` must precede `time_max` if both are provided. This action retrieves free and busy time slots for the specified calendars over a given time period. It analyzes the busy intervals from the calendars and provides calculated free slots based on the gaps in the busy periods.

Action Parameters

calendar_expansion_max
integerDefaults to 50
group_expansion_max
integerDefaults to 100
items
arrayDefaults to ['primary']
time_max
time_min
timezone
stringDefaults to UTC

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Query Free/Busy Information

Description

Returns free/busy information for a set of calendars.

Action Parameters

calendarExpansionMax
groupExpansionMax
items
arrayRequired
timeMax
stringRequired
timeMin
stringRequired
timeZone

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Get Google Calendar

Description

Retrieves a specific Google Calendar, identified by `calendar_id`, to which the authenticated user has access.

Action Parameters

calendar_id
stringDefaults to primary

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Get current date and time

Description

Gets the current date and time, allowing for a specific timezone offset.

Action Parameters

timezone

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: List ACL Rules

Description

Retrieves the list of access control rules (ACLs) for a specified calendar, providing the necessary 'rule_id' values required for updating specific ACL rules.

Action Parameters

calendar_id
stringRequired
max_results
page_token
show_deleted
sync_token

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: List Google Calendars

Description

Retrieves calendars from the user's Google Calendar list, with options for pagination and filtering.

Action Parameters

max_results
integerDefaults to 10
min_access_role
page_token
show_deleted
boolean
show_hidden
boolean
sync_token

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: List Calendar Settings

Description

Tool to return all user settings for the authenticated user. Use when you need to retrieve calendar settings.

Action Parameters

maxResults
pageToken

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Patch Calendar

Description

Partially updates (PATCHes) an existing Google Calendar, modifying only the fields provided; `summary` is mandatory and cannot be an empty string, and an empty string for `description` or `location` clears them.

Action Parameters

calendar_id
stringRequired
description
location
summary
stringRequired
timezone

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Patch Event

Description

Update specified fields of an existing event in a Google Calendar using patch semantics (array fields like `attendees` are fully replaced if provided); ensure the `calendar_id` and `event_id` are valid and the user has write access to the calendar.

Action Parameters

attendees
calendar_id
stringRequired
conference_data_version
description
end_time
event_id
stringRequired
location
max_attendees
rsvp_response
send_updates
start_time
summary
supports_attachments
timezone

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Quick Add Event

Description

Parses natural language text to quickly create a basic Google Calendar event with its title, date, and time, suitable for simple scheduling; does not support direct attendee addition or recurring events, and `calendar_id` must be valid if not 'primary'.

Action Parameters

calendar_id
stringDefaults to primary
send_updates
stringDefaults to none
text
string

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Remove attendee from event

Description

Removes an attendee from a specified event in a Google Calendar; the calendar and event must exist.

Action Parameters

attendee_email
stringRequired
calendar_id
stringDefaults to primary
event_id
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Get Calendar Setting

Description

Tool to return a single user setting for the authenticated user. Use when you need to retrieve a specific calendar setting value.

Action Parameters

setting
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: List Settings

Description

Returns all user settings for the authenticated user.

Action Parameters

maxResults
pageToken
syncToken

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Watch Settings

Description

Watch for changes to Settings resources.

Action Parameters

address
stringRequired
expiration
id
stringRequired
params
token
type
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Sync Events

Description

Synchronizes Google Calendar events, performing a full sync if no `sync_token` is provided or if a 410 GONE error (due to an expired token) necessitates it, otherwise performs an incremental sync for events changed since the `sync_token` was issued.

Action Parameters

calendar_id
stringDefaults to primary
event_types
max_results
pageToken
single_events
sync_token

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Update ACL Rule

Description

Updates an access control rule for the specified calendar.

Action Parameters

calendar_id
stringRequired
role
stringRequired
rule_id
stringRequired
send_notifications
Defaults to True

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Update Google event

Description

Updates an existing event in Google Calendar. REQUIRES event_id - you MUST first search for the event using GOOGLECALENDAR_FIND_EVENT or GOOGLECALENDAR_EVENTS_LIST to obtain the event_id. This is a full PUT replacement, so provide all desired fields as unspecified ones may be cleared or reset.

Action Parameters

attendees
birthdayProperties
calendar_id
stringDefaults to primary
create_meeting_room
Defaults to True
description
eventType
stringDefaults to default
event_duration_hour
integer
event_duration_minutes
integerDefaults to 30
event_id
stringRequired
extended_properties
focusTimeProperties
guestsCanInviteOthers
guestsCanSeeOtherGuests
guests_can_modify
boolean
location
outOfOfficeProperties
recurrence
send_updates
start_datetime
stringRequired
summary
timezone
transparency
stringDefaults to opaque
visibility
stringDefaults to default
workingLocationProperties

Action Response

data
objectRequired
error
successful
booleanRequired