For the complete documentation index, see llms.txt. This page is also available as Markdown.

Google Calendar

Your Toolhouse AI Worker can connect to Google Calendar using 48 specialized tools.

Auth Connection

This service requires an auth connection to use its tools. You can set this up in your Toolhouse dashboard under Auth Connections.

Tools (48)

Google Calendar Acl Delete

Integration name: GOOGLECALENDAR_ACL_DELETE

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

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

rule_id

string

"user:test@example.com"

ACL rule identifier.

calendar_id

string

"primary"

Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the "primary" keyword.


Google Calendar Acl Get

Integration name: GOOGLECALENDAR_ACL_GET

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

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

rule_id

string

"user:email@domain.com"

ACL rule identifier. Format: 'scope_type:scope_value' or 'default'. Valid scope types: 'user' (email), 'group' (group email), 'domain' (domain name), 'default' (public access). Examples: 'user:john@example.com', 'group:team@example.com', 'domain:example.com', 'default'. Note: 'me' is NOT valid; use actual email/domain. The rule must exist - use GOOGLECALENDAR_LIST_ACL_RULES to find valid IDs.

calendar_id

string

"primary"

Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the "primary" keyword.


Google Calendar Acl Insert

Integration name: GOOGLECALENDAR_ACL_INSERT

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

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

role

string

"reader"

The role assigned to the scope. Possible values are: "none" - Provides no access; "freeBusyReader" - Provides read access to free/busy information; "reader" - Provides read access to the calendar; "writer" - Provides read and write access to the calendar; "owner" - Provides ownership of the calendar.

scope

object

The extent to which calendar access is granted by this ACL rule. Specifies who gets the access (user, group, domain, or default).

calendar_id

string

"primary"

Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the "primary" keyword.

send_notifications

boolean

true

Whether to send notifications about the calendar sharing change. Optional. The default is true.


Google Calendar Acl List

Integration name: GOOGLECALENDAR_ACL_LIST

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

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

pageToken

string

" nextPageToken_value"

Token specifying which result page to return. Optional.

syncToken

string

"nextSyncToken_value"

Token obtained from the nextSyncToken field returned on the last page of a previous list operation. It makes the result of this list operation contain only entries that have changed since then. Optional. The default is to retrieve all entries.

calendarId

string

"primary"

Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the "primary" keyword.

maxResults

integer

10

Maximum number of entries returned on one result page. Optional. The default is 100.

showDeleted

boolean

false

Whether to include deleted ACLs in the result. Optional. The default is False.


Google Calendar Acl Patch

Integration name: GOOGLECALENDAR_ACL_PATCH

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.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

role

string

"reader"

The role assigned to the scope. Possible values are: "none" - Provides no access; "freeBusyReader" - Provides read access to free/busy information; "reader" - Provides read access to the calendar (private events appear but details are hidden); "writer" - Provides read and write access to the calendar (private events and details are visible); "owner" - Provides ownership of the calendar (all permissions of writer plus ability to see and manipulate ACLs).

scope

object

The extent to which calendar access is granted by this ACL rule. Optional for patch operations. Must include type (one of: 'user', 'group', 'domain', 'default') and value (email address or domain name) for all types except 'default'.

rule_id

string

"user:test.user@example.com"

ACL rule identifier of an existing rule. IMPORTANT: The rule must already exist on the calendar - this action cannot create new rules, only modify existing ones. Use the ACL list action to find existing rule IDs, or use the ACL insert action to create a new rule first. Format: 'type:value', such as 'user:email@example.com' or 'group:group@example.com'.

calendar_id

string

"primary"

Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the "primary" keyword.

send_notifications

boolean

true

Whether to send notifications about the calendar sharing change. Note that there are no notifications on access removal. Optional. The default is True.


Google Calendar Acl Update

Integration name: GOOGLECALENDAR_ACL_UPDATE

Updates an access control rule for the specified calendar.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

role

string

"reader"

The role assigned to the scope. Possible values are: - "none" - Provides no access. - "freeBusyReader" - Provides read access to free/busy information. - "reader" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden. - "writer" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible. - "owner" - Provides ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs.

rule_id

string

"user:test.user@example.com"

ACL rule identifier.

calendar_id

string

"primary"

Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the "primary" keyword.

send_notifications

boolean

Whether to send notifications about the calendar sharing change. Note that there are no notifications on access removal. Optional. The default is True.


Google Calendar Acl Watch

Integration name: GOOGLECALENDAR_ACL_WATCH

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.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

id

string

"01234567-89ab-cdef-0123456789ab"

A UUID or similar unique string that identifies this channel.

type

string

"web_hook"

The type of delivery mechanism used for this channel. Valid values are "web_hook" or "webhook".

token

string

"target=myApp-myAclChannelDest"

An arbitrary string delivered to the target address with each notification delivered over this channel. Optional.

params

object

Additional parameters controlling delivery channel behavior. Optional.

address

string

"https://example.com/notifications"

The address where notifications are delivered for this channel.

calendarId

string

"primary"

Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the "primary" keyword.


Google Calendar Batch Events

Integration name: GOOGLECALENDAR_BATCH_EVENTS

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.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

fail_fast

boolean

If true, stop processing after the first batch containing any 4xx error (except 404 on DELETE). Default is false.

operations

array

List of batch operations to execute. Maximum 1000 operations per request.


Google Calendar Calendar List Delete

Integration name: GOOGLECALENDAR_CALENDAR_LIST_DELETE

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.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

calendar_id

string

"primary"

Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the 'primary' keyword.


Google Calendar Calendar List Get

Integration name: GOOGLECALENDAR_CALENDAR_LIST_GET

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.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

calendarId

string

"primary"

Required. The calendar identifier for the single calendar to retrieve. Use 'primary' for the primary calendar of the authenticated user, or provide a specific calendar ID (e.g., an email address or group calendar ID). To find calendar IDs, first use GOOGLECALENDAR_CALENDAR_LIST_LIST to list all calendars.


Google Calendar Calendar List Insert

Integration name: GOOGLECALENDAR_CALENDAR_LIST_INSERT

Inserts an existing calendar into the user's calendar list, making it visible in the UI. Calendars (e.g., newly created ones) won't appear in the list or UI until explicitly inserted.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

id

string

"examplecalendar@group.calendar.google.com"

The identifier of the calendar to insert. Must be a valid calendar ID in email format (e.g., ‘user@example.com’ for a user’s calendar or ‘calendarid@group.calendar.google.com’ for a shared calendar). Note: The ‘primary’ keyword is not supported for this operation - use the actual email address of the primary calendar instead. The calendar must exist and you must have appropriate access permissions.

hidden

boolean

Whether the calendar has been hidden from the list. Accepts only boolean values: true or false. If not specified, the API defaults to false.

colorId

string

"1"

The color of the calendar. This is an ID referring to an entry in the calendarCore color palette.

selected

boolean

Whether the calendar is selected and visible in the calendar list. Accepts only boolean values: true or false. If not specified, the API defaults to false.

backgroundColor

string

"#000000"

The background color of the calendar in the Web UI. (Hexadecimal color code)

foregroundColor

string

"#FFFFFF"

The foreground color of the calendar in the Web UI. (Hexadecimal color code)

summaryOverride

string

The summary that the authenticated user has set for this calendar.

color_rgb_format

boolean

Whether to use the foregroundColor and backgroundColor fields to write the calendar colors (RGB). If this feature is used, the index-based colorId field will be set to the best matching option automatically. Optional. The default is False.

defaultReminders

array

The default reminders that the authenticated user has for this calendar.

notificationSettings

object

The notifications that the authenticated user is receiving for this calendar.


Google Calendar Calendar List Patch

Integration name: GOOGLECALENDAR_CALENDAR_LIST_PATCH

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

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

hidden

boolean

true

Whether calendar is hidden.

colorId

string

"6"

ID for calendar color from colors endpoint.

selected

boolean

true

Whether calendar content shows in UI.

calendar_id

string

"primary"

Calendar identifier. To retrieve calendar IDs call the calendarList.list method. Use "primary" keyword for the currently logged in user's primary calendar.

colorRgbFormat

boolean

true

Whether to use RGB for foreground/background colors.

backgroundColor

string

"#0088aa"

Hex color for calendar background.

foregroundColor

string

"#ffffff"

Hex color for calendar foreground.

summaryOverride

string

"My Work Calendar"

User-set summary for the calendar.

defaultReminders

array

List of default reminders.

notificationSettings

object

Notification settings for the calendar.


Google Calendar Calendar List Update

Integration name: GOOGLECALENDAR_CALENDAR_LIST_UPDATE

Updates a calendar list entry's display/subscription settings (color, visibility, reminders, selection) for the authenticated user — does not modify the underlying calendar resource (title, timezone, etc.). To modify the calendar itself, use GOOGLECALENDAR_CALENDARS_UPDATE.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

hidden

boolean

true

Whether calendar is hidden.

colorId

string

"17"

ID for calendar color from colors endpoint.

selected

boolean

true

Whether calendar content shows in UI.

calendar_id

string

"examplecalendar@group.calendar.google.com"

Calendar identifier. Must be an actual calendar ID (e.g., "examplecalendar@group.calendar.google.com" or "c_abc123...@group.calendar.google.com"). To retrieve valid calendar IDs, use the GOOGLECALENDAR_LIST_CALENDARS action first. The "primary" alias is not valid for calendarList.update.

colorRgbFormat

boolean

true

Whether to use RGB for foreground/background colors.

backgroundColor

string

"#0088aa"

Hex color for calendar background.

foregroundColor

string

"#ffffff"

Hex color for calendar foreground.

summaryOverride

string

"My Work Calendar"

User-set summary for the calendar.

defaultReminders

array

List of default reminders.

notificationSettings

object

Notification settings for the calendar.


Google Calendar Calendar List Watch

Integration name: GOOGLECALENDAR_CALENDAR_LIST_WATCH

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

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

id

string

"01234567-89ab-cdef-0123456789ab"

A UUID or similar unique string that identifies this channel. Maximum 64 characters.

type

string

"web_hook"

The type of delivery mechanism used for this channel. Must be "web_hook" or "webhook".

token

string

"verification-token-123"

An arbitrary string delivered to the target address with each notification. Maximum 256 characters. Used for channel verification and message routing.

params

object

Additional parameters controlling delivery channel behavior.

address

string

"https://example.com/webhook"

The HTTPS URL where notifications are delivered for this channel. Must have a valid SSL certificate.

expiration

integer

1735689600000

Unix timestamp in milliseconds indicating when the API should stop sending notifications.


Google Calendar Calendars Delete

Integration name: GOOGLECALENDAR_CALENDARS_DELETE

Deletes a secondary calendar that you own or have delete permissions on. Deletion is permanent and irreversible — verify the correct calendar_id before calling. 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. Parallel calls may trigger userRateLimitExceeded; sequence bulk deletions.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

calendar_id

string

"example_calendar_id@group.calendar.google.com"

Calendar identifier for a secondary calendar you own or have delete permissions on. Use calendarList.list to find deletable calendar IDs (look for accessRole "owner"). Primary calendars cannot be deleted; use the Clear Calendar action instead.


Google Calendar Calendars Update

Integration name: GOOGLECALENDAR_CALENDARS_UPDATE

Full PUT-style update that overwrites all calendar metadata fields; unspecified optional fields are cleared. Use GOOGLECALENDAR_PATCH_CALENDAR to update only a subset of fields. Mutates the underlying calendar resource (title, description, timeZone, etc.); use GOOGLECALENDAR_CALENDAR_LIST_UPDATE to change per-user display properties like color.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

summary

string

Title of the calendar. Must be a non-empty string; passing an empty string clears the calendar title.

location

string

Geographic location of the calendar as free-form text. Optional.

timeZone

string

The time zone of the calendar. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) Optional.

calendarId

string

Calendar identifier. Use 'primary' to update the primary calendar of the currently logged in user, or provide a specific calendar ID (typically in email format like 'abc123@group.calendar.google.com'). To retrieve calendar IDs call the calendarList.list method. IMPORTANT: This is NOT the calendar's display name/title. NOTE: For better performance, prefer providing the actual calendar ID instead of 'primary', as the 'primary' alias requires an additional API call to resolve.

description

string

Description of the calendar. Optional.


Google Calendar Channels Stop

Integration name: GOOGLECALENDAR_CHANNELS_STOP

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

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

id

string

"4ba78bf0-6a47-11e2-bcfd-0800200c9a66"

A UUID or similar unique string that identifies this channel.

token

string

An arbitrary string delivered to the target address with each notification delivered over this channel. Optional.

resourceId

string

"Glz7TVFWTQFgQtbe1Sgnrfno6FM"

An opaque ID that identifies the resource being watched on this channel. Stable across different API versions.


Google Calendar Clear Calendar

Integration name: GOOGLECALENDAR_CLEAR_CALENDAR

Clears a primary calendar by deleting all events from it. The calendar itself is preserved; only its events are removed. Primary calendars cannot be deleted entirely.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

calendar_id

string

"primary"

Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the "primary" keyword.


Google Calendar Colors Get

Integration name: GOOGLECALENDAR_COLORS_GET

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

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

No parameters required.


Google Calendar Create Event

Integration name: GOOGLECALENDAR_CREATE_EVENT

Create a Google Calendar event using start_datetime plus duration fields. The organizer is added as an attendee unless exclude_organizer is True. By default adds Google Meet link (works for Workspace, gracefully falls back for personal Gmail). Attendees can be email strings (required) or objects with email and optional fields. No conflict checking is performed; use GOOGLECALENDAR_FREE_BUSY_QUERY to detect overlaps before creating. Returns event id and htmlLink nested under data.response_data. Example: { "start_datetime": "2025-01-16T13:00:00", "timezone": "America/New_York", "event_duration_hour": 1, "event_duration_minutes": 30, "summary": "Client sync", "attendees": ["required@example.com", {"email": "optional@example.com", "optional": true}] }

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

summary

string

Summary (title) of the event.

location

string

Geographic location of the event as free-form text.

timezone

string

IANA timezone name from the timezone database (e.g., 'America/New_York', 'Europe/London', 'Asia/Jerusalem', 'UTC'). Required if datetime is naive. For recurring events, start and end must include a timeZone. If not provided, UTC is used. If datetime includes timezone info (Z or offset), this field is optional and defaults to UTC. IMPORTANT: Must be a valid IANA timezone identifier. Values like 'EST', 'PST', 'ISRAEL TIME', or other abbreviations are NOT valid IANA timezone names.

attendees

array

List of attendees. Each attendee can be either: (1) A string email address (e.g., 'user@example.com'), or (2) An object with 'email' (required), 'optional' (boolean, default false), 'displayName' (string), 'comment' (string), 'additionalGuests' (integer), and 'resource' (boolean). To mark an attendee as optional (not required), use object format: {'email': 'user@example.com', 'optional': true}. IMPORTANT: Only valid email addresses are accepted. Plain names cannot be used.

eventType

string

Type of the event, immutable post-creation. 'workingLocation' (REQUIRES Google Workspace Enterprise). Note: 'fromGmail' events cannot be created via API.

recurrence

array

List of RRULE, EXRULE, RDATE, EXDATE lines for recurring events. Supported frequencies: DAILY, WEEKLY, MONTHLY, YEARLY. For recurring events, start.timeZone and end.timeZone must be present. UNTIL values follow RFC 5545: date-only (YYYYMMDD) for all-day events, or UTC datetime with Z suffix (YYYYMMDDTHHMMSSZ) for timed events. UNTIL values with time but missing Z suffix are auto-corrected. Provide an empty list to remove recurrence so the event becomes non-recurring.

visibility

string

Event visibility: 'default', 'public', 'private', or 'confidential'.

calendar_id

string

"primary"

Calendar identifier. Use 'primary' (recommended) for the user's main calendar. Alternatively, use a calendar ID from the user's accessible calendar list. Calendar IDs look like email addresses (e.g., 'xyz@group.calendar.google.com' for shared calendars). Important: Arbitrary email addresses will NOT work - the calendar must exist in the user's calendar list with appropriate access permissions. Use GOOGLECALENDAR_LIST_CALENDARS to retrieve valid calendar IDs.

description

string

Description of the event. Can contain HTML. Optional. Must be omitted for 'birthday' event type.

end_datetime

string

Event end time in ISO 8601 format: YYYY-MM-DDTHH:MM:SS. When provided, this parameter takes precedence over event_duration_hour and event_duration_minutes. If not provided, the end time is calculated using start_datetime + duration. Must be after start_datetime. Fractional seconds and timezone info will be automatically stripped if provided. Examples: '2025-01-16T14:30:00', '2025-01-16T14:30'.

send_updates

string

Options for who should receive notifications about event changes.

transparency

string

'opaque' (busy) or 'transparent' (available).

start_datetime

string

REQUIRED. Event start time in ISO 8601 format: YYYY-MM-DDTHH:MM:SS. IMPORTANT: Natural language expressions like 'tomorrow', 'next Monday', '2pm tomorrow' are NOT supported and will be rejected. You must provide the exact date and time in ISO format. Fractional seconds (e.g., .000) and timezone info (Z, +, -) will be automatically stripped if provided. Examples: '2025-01-16T13:00:00', '2025-01-16T13:00'.

guestsCanModify

boolean

If True, guests can modify the event.

exclude_organizer

boolean

If True, the organizer will NOT be added as an attendee. Default is False (organizer is included).

birthdayProperties

object

Properties for birthday events.

create_meeting_room

boolean

Defaults to True. When True, for CREATE operations creates a Google Meet link; for UPDATE operations preserves existing conference data if present, or adds a new Meet link if none exists. Google Workspace accounts will successfully receive a Meet link. Personal Gmail accounts and other unsupported accounts will gracefully fallback to creating an event without a Meet link when conference creation fails. Set to False to skip Meet link operations (won't create new or modify existing conference data). The fallback ensures event creation succeeds even when conference features are unavailable due to account limitations.

event_duration_hour

integer

Number of hours for the event duration. Supports multi-day events (e.g., 240 hours = 10 days). For durations under 1 hour, use event_duration_minutes instead. Ignored if end_datetime is provided.

extended_properties

object

Extended properties of the event for storing custom metadata. Contains 'private' (visible only on this calendar) and/or 'shared' (visible to all attendees) dictionaries mapping string keys to string values. Example: {'private': {'key1': 'value1'}, 'shared': {'key2': 'value2'}}

focusTimeProperties

object

Properties for focusTime events. REQUIRES Google Workspace Enterprise account with Focus Time feature enabled.

guestsCanInviteOthers

boolean

Whether attendees other than the organizer can invite others to the event.

outOfOfficeProperties

object

Properties for outOfOffice events.

event_duration_minutes

integer

Duration in minutes (0-59 ONLY). NEVER use 60+ minutes - use event_duration_hour=1 instead. Maximum value is 59. Combined duration (hours + minutes) must be greater than 0. Ignored if end_datetime is provided.

guestsCanSeeOtherGuests

boolean

Whether attendees other than the organizer can see who the event's attendees are.

workingLocationProperties

object

Properties for workingLocation events. REQUIRES Google Workspace Enterprise. Constraints discovered from testing: - Must set transparency='transparent' and visibility='public' - Description must be omitted - Depending on 'type', include one of 'homeOffice', 'officeLocation', or 'customLocation'


Google Calendar Delete Event

Integration name: GOOGLECALENDAR_DELETE_EVENT

Deletes a specified event by event_id from a Google Calendar (calendar_id); idempotent — a 404 for an already-deleted event is a no-op. Bulk deletions may trigger rateLimitExceeded or userRateLimitExceeded; cap concurrency to 5–10 requests and apply exponential backoff.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

event_id

string

Unique identifier of the event to delete. For standalone events, use the base event ID (e.g., 'abc123def456'). For recurring event instances, use the instance ID format 'baseEventId_YYYYMMDDTHHMMSSZ' (e.g., 'abc123def456_20260522T093000Z') where the timestamp suffix represents the instance's original start time in UTC. Instance IDs can be obtained from the EVENTS_INSTANCES action. To delete ALL occurrences of a recurring event, use the base event ID without the timestamp suffix. Must be the internal API identifier from a prior API response — UI-visible identifiers, URL-encoded variants, or shortened IDs are invalid and cause 404/validation errors.

calendar_id

string

"primary"

Identifier of the Google Calendar (e.g., email address, specific ID, or 'primary' for the authenticated user's main calendar) from which the event will be deleted. Read-only or subscribed calendars (calendars not owned by the authenticated user) return 403 on deletion attempts.

send_updates

string

Options for who should receive notifications about event changes.

send_notifications

boolean

Deprecated. Whether to send notifications about the deletion of the event. Note that some emails might still be sent.


Google Calendar Duplicate Calendar

Integration name: GOOGLECALENDAR_DUPLICATE_CALENDAR

Creates a new, empty Google Calendar with the specified title (summary). Newly created calendars default to UTC timezone; use GOOGLECALENDAR_PATCH_CALENDAR afterward to set the desired timeZone if needed.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

summary

string

"Project Alpha Tasks"

Title for the new Google Calendar to be created. Required and must be a non-empty string.


Google Calendar Events Get

Integration name: GOOGLECALENDAR_EVENTS_GET

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.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

event_id

string

"0a9160c4c367855d09a84f8d4350bda2"

REQUIRED. The unique identifier of the specific event to retrieve. You must already know this ID (e.g., from a previous EVENTS_LIST call or event creation response). This action fetches ONE event by ID - it cannot list or search events. To find events by time range or search criteria, use GOOGLECALENDAR_EVENTS_LIST instead.

time_zone

string

"America/New_York"

Time zone used in the response. If not specified, the calendar's time zone is used.

calendar_id

string

"primary"

Identifier of the Google Calendar (e.g., email address, specific ID, or 'primary' for the authenticated user's main calendar) from which to retrieve the event.

max_attendees

integer

Maximum number of attendees to include in the response. If there are more than the specified number, only the participant is returned.


Google Calendar Events Import

Integration name: GOOGLECALENDAR_EVENTS_IMPORT

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.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

end

object

The (exclusive) end time of the event. For all-day events, use 'date' field; for timed events, use 'dateTime' and 'timeZone' fields.

start

object

The (inclusive) start time of the event. For all-day events, use 'date' field; for timed events, use 'dateTime' and 'timeZone' fields. dateTime must be ISO 8601 format (e.g., '2024-01-15T10:00:00'); timeZone should match the calendar's timezone to avoid shifted times.

source

object

Source from which the event was created.

status

string

"confirmed"

Status of the event. Possible values: 'confirmed', 'tentative', 'cancelled'.

colorId

string

The color of the event. This is an ID referring to an entry in the event colors definition.

iCalUID

string

"test-event-import-12345@example.com"

Event unique identifier as defined in RFC5545. This is required to identify the event being imported.

summary

string

Title of the event.

location

string

Geographic location of the event as free-form text.

sequence

integer

Sequence number as per iCalendar.

attendees

array

The attendees of the event.

reminders

object

Information about the event's reminders for the authenticated user.

recurrence

array

List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event, as specified in RFC5545. Each string must include the full prefix (e.g., 'RRULE:FREQ=WEEKLY;BYDAY=MO'); omitting the prefix causes a 400 error.

visibility

string

Visibility of the event. Possible values: 'default', 'public', 'private', 'confidential'. Default: 'default'.

attachments

array

File attachments for the event.

calendar_id

string

"primary"

Calendar identifier. Use 'primary' for the logged-in user's primary calendar or the calendar's email address.

description

string

Description of the event. Can contain HTML.

transparency

string

Whether the event blocks time on the calendar. Possible values: 'opaque' (blocks time), 'transparent' (does not block time). Default: 'opaque'.

guestsCanModify

boolean

Whether attendees other than the organizer can modify the event. Default: False.

extendedProperties

object

Extended properties of the event.

supportsAttachments

boolean

Whether API client performing operation supports event attachments. Default: False.

conferenceDataVersion

integer

Version number of conference data supported by the API client. Version 0 assumes no conference data support and ignores conference data in the event's body. Version 1 enables copying of ConferenceData as well as for creating new conferences using the createRequest field of conferenceData. Default: 0.

guestsCanInviteOthers

boolean

Whether attendees other than the organizer can invite others to the event. Default: True.

guestsCanSeeOtherGuests

boolean

Whether attendees other than the organizer can see who the event's attendees are. Default: True.


Google Calendar Events Instances

Integration name: GOOGLECALENDAR_EVENTS_INSTANCES

Returns instances of the specified recurring event. Use timeMin/timeMax to constrain the window; omitting bounds can return large result sets and is quota-heavy. On high-volume calls, 403 rateLimitExceeded or 429 too_many_requests may occur; apply exponential backoff (1s, 2s, 4s) before retrying.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

eventId

string

"a1b2c3d4e5f6g7h8i9j0k1l2m3"

REQUIRED. The ID of the recurring event whose instances you want to retrieve. You must first use GOOGLECALENDAR_FIND_EVENT or GOOGLECALENDAR_EVENTS_LIST to find recurring events and get their IDs. This action only works with recurring events that have a recurrence rule.

timeMax

string

"2024-07-31T23:59:59Z"

Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time. Must be an RFC3339 timestamp with mandatory time zone offset.

timeMin

string

"2024-07-01T00:00:00Z"

Lower bound (inclusive) for an event's end time to filter by. Optional. The default is not to filter by end time. Must be an RFC3339 timestamp with mandatory time zone offset.

timeZone

string

"America/Los_Angeles"

Time zone used in the response. Optional. The default is the time zone of the calendar.

pageToken

string

Token specifying which result page to return. Optional.

calendarId

string

"primary"

Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the "primary" keyword.

maxResults

integer

100

Maximum number of events returned on one result page. By default the value is 250 events. The page size can never be larger than 2500 events. Optional.

showDeleted

boolean

true

Whether to include deleted events (with status equals "cancelled") in the result. Cancelled instances of recurring events will still be included if singleEvents is False. Optional. The default is False.

maxAttendees

integer

5

The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.

originalStart

string

"2024-07-15T10:00:00Z"

The original start time of the instance in the result. Optional.


Google Calendar Events List

Integration name: GOOGLECALENDAR_EVENTS_LIST

Returns events on the specified calendar. TIMEZONE WARNING: When using timeMin/timeMax with UTC timestamps (ending in 'Z'), the time window is interpreted in UTC regardless of the calendar's timezone. For example, querying '2026-01-19T00:00:00Z' to '2026-01-20T00:00:00Z' on a calendar in America/Los_Angeles (UTC-8) covers 2026-01-18 4pm to 2026-01-19 4pm local time, potentially missing events on the intended local date. To query for a specific local date, use timestamps with the appropriate timezone offset in timeMin/timeMax (e.g., '2026-01-19T00:00:00-08:00' for PST).

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

q

string

Free text search terms to find events that match these terms in various fields. Optional.

iCalUID

string

Specifies an event ID in the iCalendar format to be provided in the response. Optional. Use this if you want to search for an event by its iCalendar ID.

orderBy

string

The order of the events returned in the result. Optional. The default is an unspecified, stable order. Acceptable values are: "startTime", "updated". When set to "startTime", singleEvents must be true. The action automatically sets singleEvents=true when orderBy='startTime'.

timeMax

string

Upper bound (exclusive) for an event's start time to filter by. Optional. If unset, no start-time upper bound is applied. Must be an RFC3339 timestamp with mandatory time zone offset (e.g., 2011-06-03T10:00:00-07:00 or 2011-06-03T10:00:00Z). Milliseconds may be provided but are ignored. If timeMin is set, timeMax must be greater than timeMin. TIMEZONE WARNING: If using UTC times (ending in 'Z') but the calendar is in a different timezone, the time window may not align with local calendar dates. For example, '2026-01-19T00:00:00Z' to '2026-01-20T00:00:00Z' covers 2026-01-18 4pm to 2026-01-19 4pm in America/Los_Angeles (UTC-8). To query a specific local date, use timestamps with the appropriate local timezone offset (e.g., '2026-01-19T00:00:00-08:00' for PST). NOTE: Natural language expressions like 'today', 'tomorrow', 'next week' are NOT supported.

timeMin

string

Lower bound (exclusive) for an event's end time to filter by. Optional. If unset, no end-time lower bound is applied. Must be an RFC3339 timestamp with mandatory time zone offset (e.g., 2011-06-03T10:00:00-07:00 or 2011-06-03T10:00:00Z). Milliseconds may be provided but are ignored. If timeMax is set, timeMin must be smaller than timeMax. TIMEZONE WARNING: If using UTC times (ending in 'Z') but the calendar is in a different timezone, the time window may not align with local calendar dates. For example, '2026-01-19T00:00:00Z' to '2026-01-20T00:00:00Z' covers 2026-01-18 4pm to 2026-01-19 4pm in America/Los_Angeles (UTC-8). To query a specific local date, use timestamps with the appropriate local timezone offset (e.g., '2026-01-19T00:00:00-08:00' for PST). NOTE: Natural language expressions like 'today', 'tomorrow', 'next week' are NOT supported.

timeZone

string

Time zone used in the response for formatting event times. Optional. Use an IANA time zone identifier (e.g., America/Los_Angeles). Defaults to the user's primary time zone. Offsets (e.g., '-03:00', 'UTC+0') and abbreviations (e.g., 'IST', 'PST') are invalid. NOTE: This parameter only affects how event times are displayed in the response. It does NOT change how timeMin/timeMax filtering is interpreted. To query a specific local date, use timestamps with the appropriate timezone offset directly in timeMin/timeMax (e.g., '2026-01-19T00:00:00-08:00').

pageToken

string

Opaque pagination token from a previous response's nextPageToken field. Must be the exact string returned by the API - do not use placeholder values like 'NEXT', 'next', '1', '2', etc. Omit this parameter entirely for the first page of results. Optional.

syncToken

string

Token from nextSyncToken to return only entries changed since the last list. Cannot be combined with iCalUID, orderBy, privateExtendedProperty, q, sharedExtendedProperty, timeMin, timeMax, or updatedMin. Deletions since the previous list are always included; showDeleted cannot be false in this mode. The action automatically removes conflicting parameters when syncToken is provided.

calendarId

string

"primary"

Calendar identifier. Use "primary" for the user's main calendar, or a calendar ID from the user's accessible calendar list. Arbitrary email addresses will NOT work - the calendar must exist in the user's calendar list. Use GOOGLECALENDAR_LIST_CALENDARS to retrieve valid calendar IDs. Defaults to "primary". Empty strings will be treated as "primary". Do NOT use Composio internal IDs like connectedAccountId (which start with "ca*") - these will be automatically replaced with "primary".

eventTypes

string

Event types to return. Optional. Pass a single value only. If unset, returns all event types. Acceptable values are: "birthday", "default", "focusTime", "fromGmail", "outOfOffice", "workingLocation".

maxResults

integer

Maximum number of events returned on one result page. The number of events in the resulting page may be less than this value, or none at all, even if there are more events matching the query. Incomplete pages can be detected by a non-empty nextPageToken field in the response. By default the value is 250 events. The page size can never be larger than 2500 events. Optional. Must be >= 1 if provided.

updatedMin

string

Lower bound for an event's last modification time (RFC3339). When specified, entries deleted since this time are always included regardless of showDeleted. Optional.

showDeleted

boolean

Include cancelled events (status="cancelled"). Optional; default is false. This surfaces cancelled (soft-deleted) events, not items in the Trash. When syncToken or updatedMin is used, deletions since those markers are included regardless of showDeleted. Recurring interaction: if singleEvents=false and showDeleted=false, cancelled instances of a recurring series may still be included; if showDeleted=true and singleEvents=true, only single deleted instances (not parent series) are returned.

maxAttendees

integer

The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional. Must be >= 1 if provided.

singleEvents

boolean

Whether to expand recurring events into instances and only return single one-off events and instances of recurring events. Optional. The default is False.

alwaysIncludeEmail

boolean

Deprecated and ignored.

showHiddenInvitations

boolean

Whether to include hidden invitations in the result. Optional. The default is False. Hidden invitations are events where your attendee entry has responseStatus='needsAction' and attendees[].self==true. When true, such invitations are included.

sharedExtendedProperty

string

Extended properties constraint specified as propertyName=value. Matches only shared properties. This parameter might be repeated multiple times to return events that match all given constraints.

privateExtendedProperty

string

Extended properties constraint specified as propertyName=value. Matches only private properties. This parameter might be repeated multiple times to return events that match all given constraints.

composio_replaced_calendar_id

string

Internal field to track if calendarId was replaced


Google Calendar Events List All Calendars

Integration name: GOOGLECALENDAR_EVENTS_LIST_ALL_CALENDARS

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. An inverted or incorrect time range silently returns empty results rather than an error. An empty items list means no events matched the filters—adjust time_min, time_max, or q before concluding no events exist.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

q

string

Free text search terms to find events that match these terms in any field, except for extended properties. Optional.

time_max

string

Upper bound (exclusive) for an event's start time to filter by. Must be an RFC3339 timestamp with mandatory time zone offset (e.g., 2011-06-03T10:00:00-07:00 or 2011-06-03T10:00:00Z). If timezone offset is missing, UTC (Z) will be automatically appended. Required.

time_min

string

Lower bound (inclusive) for an event's end time to filter by. Must be an RFC3339 timestamp with mandatory time zone offset (e.g., 2011-06-03T10:00:00-07:00 or 2011-06-03T10:00:00Z). If timezone offset is missing, UTC (Z) will be automatically appended. Required.

event_types

array

Event types to return. Optional.

calendar_ids

array

Optional list of specific calendar IDs to query. If not provided, all calendars from the user's calendar list will be queried.

show_deleted

boolean

Whether to include deleted events (with status equals 'cancelled') in the result. Optional. The default is False.

single_events

boolean

Whether to expand recurring events into instances and only return single one-off events and instances of recurring events. Optional. The default is True.

response_detail

string

Level of detail in the response. 'minimal' (default) returns only the compact summary_view, omitting the large events array to reduce token usage. 'full' returns both summary_view and the full detailed events array.

max_results_per_calendar

integer

Maximum number of events returned per calendar. Optional. If not provided, defaults to the API's default (250). Results may be paginated; follow nextPageToken in the response until absent to retrieve the complete event list.


Google Calendar Events Move

Integration name: GOOGLECALENDAR_EVENTS_MOVE

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

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

event_id

string

"7cbh8j70fer2s71jgm1bmeb0f1"

Event identifier. To retrieve event identifiers call the events.list method.

calendar_id

string

"primary"

Calendar identifier of the source calendar. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the "primary" keyword.

destination

string

"secondaryCalendarId"

Calendar identifier of the destination calendar. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the "primary" keyword.

send_updates

string

"all"

Options for who should receive notifications about event changes.


Google Calendar Events Watch

Integration name: GOOGLECALENDAR_EVENTS_WATCH

Watch for changes to Events resources. Watch channels expire; persist the channel id per calendarId to re-establish watches after expiration or restarts.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

id

string

"01234567-89ab-cdef-0123456789ab"

A UUID or similar unique string that identifies this channel.

type

string

"web_hook"

The type of delivery mechanism used for this channel.

token

string

"target=myApp-myCalendarChannelDest"

An arbitrary string delivered to the target address with each notification delivered over this channel. Optional.

params

object

Additional parameters controlling delivery channel behavior. Optional.

address

string

"https://example.com/notifications"

The address where notifications are delivered for this channel. Must be a publicly accessible HTTPS URL; http:// or localhost URLs will not receive notifications.

payload

boolean

A Boolean value to indicate whether payload is wanted. Optional.

calendarId

string

"primary"

Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the "primary" keyword.


Google Calendar Find Event

Integration name: GOOGLECALENDAR_FIND_EVENT

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. Results may span multiple pages; always follow nextPageToken until absent to avoid silently missing events. Validate the correct match from results by checking summary, start.dateTime, and organizer.email before using event_id for mutations. An empty items array means no events matched — widen filters rather than treating it as an error.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

query

string

"Project Alpha Review"

Free-text search terms to find events. This query is matched against various event fields including summary, description, location, attendees' details (displayName, email), and organizer's details. Cannot search by event_id. Performs full-text match (not exact); broad terms may return unrelated events. For person-based matching, prefer attendees[].email over display names. If results appear incomplete, use GOOGLECALENDAR_EVENTS_LIST with client-side filtering.

order_by

string

"startTime"

Order of events: 'startTime' (ascending by start time) or 'updated' (ascending by last modification time). Note: 'startTime' requires single_events=true. Use 'updated' if you need to include recurring masters (e.g., cancelled series).

time_max

string

"2024-12-31T23:59:59Z"

Upper bound (exclusive) for an event's start time to filter by. Only events starting before this time are included. Accepts multiple formats: 1. RFC3339 timestamp (e.g., '2024-12-06T13:00:00Z') 2. Comma-separated date/time parts (e.g., '2024,12,06,13,00,00') 3. Simple datetime string (e.g., '2024-12-06 13:00:00') Set to the first instant after the desired period to avoid missing boundary events, especially all-day events (date-only fields). Overly wide ranges expand many recurring instances, causing large payloads and high latency — constrain to the minimum required window.

time_min

string

"2024-01-01T00:00:00Z"

Lower bound (exclusive) for an event's end time to filter by. Only events ending after this time are included. Accepts multiple formats: 1. RFC3339 timestamp (e.g., '2024-12-06T13:00:00Z') 2. Comma-separated date/time parts (e.g., '2024,12,06,13,00,00') 3. Simple datetime string (e.g., '2024-12-06 13:00:00') RFC3339 timestamps must include explicit timezone offsets; missing or mismatched offsets can silently exclude matching events. To align with the calendar's timezone, retrieve it via GOOGLECALENDAR_GET_CALENDAR.

page_token

string

Token from a previous response's nextPageToken to fetch the subsequent page of results. Always follow every nextPageToken until absent; skipping pagination silently omits events on busy calendars.

calendar_id

string

"primary"

Identifier of the Google Calendar to query. IMPORTANT: This must be a valid calendar identifier, NOT a calendar name/title. Valid formats are: 'primary' (the authenticated user's primary calendar), an email address (e.g., 'user@example.com'), or a calendar ID (e.g., 'abc123xyz@group.calendar.google.com'). To find the calendar ID for a named calendar, first use the List Calendars action (GOOGLECALENDAR_LIST_CALENDARS) to retrieve all available calendars with their IDs. 'primary' searches only the authenticated user's primary calendar; to search all calendars, retrieve each ID via GOOGLECALENDAR_LIST_CALENDARS and query separately.

event_types

array

"default"

Event types to include. Supported values: 'birthday', 'default', 'focusTime', 'outOfOffice', 'workingLocation'.

max_results

integer

Maximum number of events per page (1-2500).

updated_min

string

"2024-07-01T00:00:00Z"

Lower bound (exclusive) for an event's last modification time to filter by. Only events updated after this time are included. When specified, events deleted since this time are also included, regardless of the show_deleted parameter. Accepts multiple formats: 1. RFC3339 timestamp (e.g., '2024-12-06T13:00:00Z') 2. Comma-separated date/time parts (e.g., '2024,12,06,13,00,00') 3. Simple datetime string (e.g., '2024-12-06 13:00:00')

show_deleted

boolean

Include events whose status is 'cancelled'. This surfaces cancelled/deleted events, not a separate 'trash' view. Behavior with recurring events: when single_events=true, only individual cancelled instances are returned (the recurring master is omitted); to include cancelled recurring masters, set single_events=false. If updated_min is provided, events deleted since that time are included regardless of this flag.

single_events

boolean

When true, recurring event series are expanded into their individual instances. When false, only the recurring master events are returned. Note: Ordering by 'startTime' requires singleEvents=true. For large calendars, it is strongly recommended to specify both timeMin and timeMax to limit the expansion window and improve performance.


Google Calendar Find Free Slots

Integration name: GOOGLECALENDAR_FIND_FREE_SLOTS

Finds both free and busy time slots in Google Calendars for specified calendars within a defined time range. If time_min is not provided, defaults to the current timestamp in the specified timezone. If time_max is not provided, defaults to 23:59:59 of the day specified in time_min (if provided), otherwise defaults to 23:59:59 of the current day in the specified timezone. Returns busy intervals 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. Returned free slots are unfiltered by duration; callers must filter intervals to those fully containing the required meeting length. No event metadata (titles, descriptions, links) is returned; use GOOGLECALENDAR_EVENTS_LIST for event details.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

items

array

["primary"]

List of calendar identifiers to query for free/busy information. Pass as a simple list of strings, e.g., ['primary'] or ['primary', 'user@example.com']. Valid values include: 'primary' (authenticated user's main calendar), calendar IDs from the user's calendar list (typically ending in @group.calendar.google.com), or email addresses of users whose free/busy information you want to query. The FreeBusy API will return error information for any calendars that are not accessible or invalid in the response under the 'errors' key for each calendar. Calendars omitted from items or inaccessible are treated as free (not unknown), which can silently produce incorrect availability results.

time_max

string

"2024-12-06T18:00:00Z"

End datetime for the query interval. Accepts ISO, comma-separated, or simple datetime formats. If provided without an explicit timezone, it is interpreted in the specified timezone. If not provided, defaults to 23:59:59 of the day specified in time_min (if provided), otherwise defaults to 23:59:59 of the current day in the specified timezone. Maximum span between time_min and time_max is approximately 90 days per Google Calendar freeBusy API limit. time_max is exclusive; to cover a full day, set time_max to 00:00:00 of the following day in the target timezone rather than 23:59:59.

time_min

string

"2024-12-06T13:00:00Z"

Start datetime for the query interval. Accepts ISO, comma-separated, or simple datetime formats. If provided without an explicit timezone, it is interpreted in the specified timezone. If not provided, defaults to the current timestamp in the specified timezone to ensure only future/bookable slots are returned. Maximum span between time_min and time_max is approximately 90 days per Google Calendar freeBusy API limit.

timezone

string

"UTC"

IANA timezone identifier (e.g., 'America/New_York', 'Europe/London', 'Asia/Tokyo'). Determines how naive time_min/time_max are interpreted and the timezone used in the response for timeMin, timeMax, busy periods, and calculated free slots. Note: 'local' is not supported; use a specific IANA timezone name.

group_expansion_max

integer

Maximum calendar identifiers to return for a single group. Must be between 1 and 100 (inclusive). Values exceeding 100 will be rejected.

calendar_expansion_max

integer

Maximum calendars for which FreeBusy information is provided. Must be between 1 and 50 (inclusive). Values exceeding 50 will be rejected.


Google Calendar Free Busy Query

Integration name: GOOGLECALENDAR_FREE_BUSY_QUERY

DEPRECATED: Use GOOGLECALENDAR_FIND_FREE_SLOTS instead (though this tool provides wider secondary/shared calendar coverage). Returns opaque busy intervals only—no event titles or details; use GOOGLECALENDAR_EVENTS_LIST when event details are needed.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

items

array

List of calendars and/or groups to query. Accepts either strings (e.g., ['primary', 'user@example.com']) or objects with an 'id' field (e.g., [{'id': 'primary'}]). String values are automatically converted to the proper format. Only calendars with at least freeBusyReader-level access are queried; omitting shared/secondary calendars can hide real conflicts. Batch all attendees into one call to avoid 403 rateLimitExceeded or 429 tooManyRequests errors.

timeMax

string

The end of the interval for the query formatted as per RFC3339. Exclusive bound; must be greater than timeMin. Keep the timeMin–timeMax window within ~90 days; larger spans may return empty or degraded results.

timeMin

string

The start of the interval for the query formatted as per RFC3339. Must be strictly less than timeMax. For full-day windows, use local 00:00 in the target timezone to avoid DST/off-by-one errors.

timeZone

string

Time zone used in the response. Optional. The default is UTC. Defaults to UTC, which skews working-hours analysis for users in other timezones; always supply a valid IANA timezone (e.g., 'America/New_York').

groupExpansionMax

integer

Maximal number of calendar identifiers to be provided for a single group. Optional. An error is returned for a group with more members than this value. Maximum value is 100.

calendarExpansionMax

integer

Maximal number of calendars for which FreeBusy information is to be provided. Optional. Maximum value is 50.


Google Calendar Get Calendar

Integration name: GOOGLECALENDAR_GET_CALENDAR

Retrieves a specific Google Calendar, identified by calendar_id, to which the authenticated user has access. Response includes timeZone (IANA format, e.g., 'America/Los_Angeles') — use it directly when constructing timeMin/timeMax in other tools to avoid DST errors. An empty defaultReminders list is valid (no defaults configured). Insufficient accessRole may omit fields like defaultReminders and colorId.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

calendar_id

string

"primary"

Identifier of the Google Calendar to retrieve. Must be 'primary' (the default) for the user's main calendar, or an email-like identifier (e.g., 'user@example.com' or 'en.usa#holiday@group.v.calendar.google.com'). IMPORTANT: Calendar display names/titles (e.g., 'Work', 'Vacation') are NOT valid identifiers and will result in errors. To find a calendar's ID, use the LIST_CALENDARS action which returns the 'id' field for each calendar.


Google Calendar Get Calendar Profile

Integration name: GOOGLECALENDAR_GET_CALENDAR_PROFILE

DEPRECATED: Use CalendarListGet instead. Tool to retrieve the authenticated user's primary calendar profile. Use when you need to get information about the user's main calendar, including timezone, settings, and preferences.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

No parameters required.


Google Calendar Get Current Date Time

Integration name: GOOGLECALENDAR_GET_CURRENT_DATE_TIME

Gets the current date and time, allowing for a specific timezone offset. Call this tool first before computing relative dates (e.g., 'tomorrow', 'next Monday') to avoid off-by-one-day errors across timezones.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

timezone

"America/New_York"

Timezone specification. Accepts: (1) IANA timezone identifier (e.g., 'America/New_York', 'Asia/Kolkata', 'Europe/London') - RECOMMENDED, (2) Common timezone abbreviations (e.g., 'PST', 'EST', 'CST', 'GMT', 'UTC') - will be auto-converted to IANA, or (3) Numeric UTC offset in hours (e.g., -5, 5.5). Use positive values for east of UTC, negative for west. Default 0 is UTC.


Google Calendar List Buildings

Integration name: GOOGLECALENDAR_LIST_BUILDINGS

Lists all buildings for a Google Workspace customer account with full details including addresses, coordinates, and floor names. Use this action when you need to retrieve the complete list of physical building locations configured in Google Workspace Calendar resources. This is useful for workspace administrators managing conference room and resource scheduling across multiple office buildings. Requires Google Workspace administrator privileges with Directory API access.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

customer

string

"my_customer"

The unique ID for the customer's Google Workspace account. Use 'my_customer' alias to represent your account's customer ID. As an account administrator, this alias represents your account's customer ID.

pageToken

string

"next_page_token_value"

Token to specify the next page in the list. Obtained from nextPageToken in a previous response. Omit for the first page.

maxResults

integer

25

Maximum number of buildings to return per page. Defaults to 25 for optimal performance.


Google Calendar List Calendar Resources

Integration name: GOOGLECALENDAR_LIST_CALENDAR_RESOURCES

Retrieves calendar resources (such as conference rooms) from a Google Workspace domain using the Admin SDK Directory API. Use this action when you need to list available meeting rooms, conference spaces, or other bookable calendar resources in an organization. The action supports filtering by resource category, capacity, building location, and other criteria. IMPORTANT: This requires Admin SDK Directory API access and appropriate admin permissions - it is NOT available for personal Gmail accounts, only Google Workspace domains.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

query

string

"resourceCategory=CONFERENCE_ROOM"

Search query to filter calendar resources. Each clause is 'field operator value'. Supported operators: '=' (exact match), '!=' (mismatch), ':' (prefix/HAS match — for prefix match, follow the value with '*'). Supported logical operators: AND, NOT (in that order of precedence). IMPORTANT: Numeric comparison operators (>, <, >=, <=) are NOT supported by the Google Admin Directory API for this endpoint and will cause a 400 Bad Request — 'capacity' can only be filtered by exact equality (e.g., 'capacity=10'). Supported fields: generatedResourceName, name, buildingId, floor_name, capacity, featureInstances.feature.name, resourceEmail, resourceCategory.

orderBy

string

"resourceName"

Specifies sorting order for results. Use field names like 'resourceId', 'resourceName', 'capacity', 'buildingId', 'floorName' optionally followed by ' desc' for descending order. Multiple fields can be separated by commas (e.g., 'buildingId, capacity desc').

customer

string

"my_customer"

The unique ID for the customer's Google Workspace account. Use 'my_customer' as an alias for the account's customer ID.

pageToken

string

"nextPageToken123"

Token for retrieving subsequent pages in paginated results. Use the nextPageToken from a previous response.

maxResults

integer

25

Maximum number of results to return per page.


Google Calendar List Calendars

Integration name: GOOGLECALENDAR_LIST_CALENDARS

Retrieves calendars from the user's Google Calendar list, with options for pagination and filtering. Loop through all pages using nextPageToken until absent to avoid missing calendars. Use the primary flag and accessRole field from the response to identify calendars — display names are not valid calendar_id values. Read access (listing) does not imply write OAuth scopes.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

page_token

string

" nextPageToken123"

Token for the page of results to return, from a previous response.

sync_token

string

"syncToken123"

Sync token from a previous list request to get only changed entries; showDeleted, showHidden, and pageToken are ignored if provided. Also ignores minAccessRole. An HTTP 410 Gone response means the token has expired; perform a full resync by omitting sync_token.

max_results

integer

25

Maximum number of calendars to return per page. Max 250.

show_hidden

boolean

true

Include calendars not typically shown in the UI.

show_deleted

boolean

true

Include deleted calendars in the result.

min_access_role

string

"reader"

Minimum access role for calendars returned. Valid values are 'freeBusyReader', 'owner', 'reader', 'writer'. freeBusyReader calendars expose only free/busy slots — no event details and writes fail with 403. Omit this filter to include read-only calendars.


Google Calendar List Settings

Integration name: GOOGLECALENDAR_LIST_SETTINGS

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

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

pageToken

string

Token for pagination to retrieve subsequent result pages

maxResults

integer

Maximum number of settings to return


Google Calendar Patch Calendar

Integration name: GOOGLECALENDAR_PATCH_CALENDAR

Partially updates (PATCHes) an existing Google Calendar, modifying only the fields provided. At least one of summary, description, location, or timezone must be provided. Empty strings for description or location clear them.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

summary

string

"Team Meetings"

New title for the calendar; cannot be an empty string when provided. At least one of summary, description, location, or timezone must be provided.

location

string

"Paris, France"

New geographic location of the calendar (e.g., 'Paris, France').

timezone

string

"Europe/Zurich"

New IANA Time Zone Database name for the calendar (e.g., 'Europe/Zurich', 'America/New_York'). Calendars duplicated via GOOGLECALENDAR_DUPLICATE_CALENDAR may default to UTC; set the correct timezone explicitly after duplication.

calendar_id

string

"primary"

The unique identifier of the Google Calendar to update. Use 'primary' for the main calendar, or a calendar's unique ID (typically in email format like 'abc123@group.calendar.google.com'). IMPORTANT: This is NOT the calendar's display name/title - use GOOGLECALENDAR_LIST_CALENDARS to find the 'id' field for a calendar.

description

string

New description for the calendar.


Google Calendar Patch Event

Integration name: GOOGLECALENDAR_PATCH_EVENT

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.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

source

object

Input model for event source.

status

string

"confirmed"

Status of the event.

summary

string

"Updated Team Meeting"

New title for the event.

color_id

string

"1"

Color ID for the event (1-11). Use GOOGLECALENDAR_COLORS_GET to retrieve available colors.

end_time

string

"2024-07-01T11:00:00-07:00"

New end time (RFC3339 timestamp, e.g., '2024-07-01T11:00:00-07:00'). Uses timezone if provided, otherwise UTC. For all-day events, use YYYY-MM-DD format (exclusive end date). Optional when updating start_time - the original event duration will be preserved if end_time is not specified. Must be strictly after start_time; mismatched or mixed formats cause HTTP 400 timeRangeEmpty.

event_id

string

"pna920peji8r3jj2a18m6bk8ms"

The unique technical identifier of the event to update. IMPORTANT: This is NOT the event title/name. Event IDs are opaque strings typically base32hex encoded (5-1024 characters using lowercase a-v and digits 0-9). For recurring event instances, the ID format is 'baseEventId_YYYYMMDDTHHMMSSZ' with an underscore separator (e.g., 'abc123def456_20260115T100000Z'). To get an event ID, first use GOOGLECALENDAR_FIND_EVENT or GOOGLECALENDAR_EVENTS_LIST to search for events and retrieve their IDs. Use master event ID to update the entire recurring series; use instance ID to update only that occurrence — confirm scope before patching.

location

string

"Conference Room B"

New geographic location (physical address or virtual meeting link).

sequence

integer

0

Sequence number as per iCalendar specification. Incremented on each event update.

timezone

string

"America/Los_Angeles"

IANA Time Zone Database name for start/end times (e.g., 'America/Los_Angeles'). Used if start_time and end_time are provided and not all-day dates; defaults to UTC if unset. Mismatched or missing timezone with offset timestamps silently shifts event to unintended wall-clock time.

attendees

array

["user1@example.com","user2@example.com"]

List of valid email addresses for attendees (e.g., 'user@example.com'). Replaces existing attendees. Provide an empty list to remove all.

reminders

object

Input model for reminders.

recurrence

array

["RRULE:FREQ=WEEKLY;BYDAY=TU;COUNT=10"]

RRULE, EXRULE, RDATE and EXDATE lines per RFC5545 for recurring events. Replaces existing recurrence rules if provided.

start_time

string

"2024-07-01T10:00:00-07:00"

New start time (RFC3339 timestamp, e.g., '2024-07-01T10:00:00-07:00'). Uses timezone if provided, otherwise UTC. For all-day events, use YYYY-MM-DD format. When only start_time is provided without end_time, the event's original duration is preserved automatically.

visibility

string

"default"

Visibility of the event.

attachments

array

File attachments (max 25). Each with 'fileUrl' (required) and optional 'title', 'mimeType'. Requires supportsAttachments=true.

calendar_id

string

"primary"

Identifier of the calendar. Use 'primary' for the primary calendar of the logged-in user. To find other calendar IDs, use the calendarList.list method. Must be provided in snake_case format.

description

string

"Weekly team sync meeting to discuss project updates."

New description for the event; can include HTML.

send_updates

string

"all"

Whether to send update notifications to attendees. Uses default user behavior if unspecified. Set explicitly to avoid unintended notifications when removing attendees or making bulk updates.

transparency

string

"opaque"

Whether the event blocks time on the calendar. 'opaque' (default) blocks time, 'transparent' does not.

max_attendees

integer

10

Maximum attendees in response; does not affect invited count. If more, response includes organizer only. Must be positive.

rsvp_response

string

"accepted"

RSVP response status for the authenticated user. Updates only the current user's response status without affecting other attendees. Note: RSVP is only supported for regular calendar events (eventType='default'); attempting to RSVP to focusTime, outOfOffice, birthday, or workingLocation events will result in an error.

conference_data

object

Input model for conference data.

attendees_omitted

boolean

true

Whether attendees may have been omitted from the event's representation.

guests_can_modify

boolean

true

Whether attendees other than the organizer can modify the event (default: false).

anyone_can_add_self

boolean

true

Whether anyone can invite themselves to the event (default: false).

extended_properties

object

Input model for extended properties.

supports_attachments

boolean

true

Client application supports event attachments. Set to True if so.

focus_time_properties

object

Input model for focus time properties.

conference_data_version

integer

0

API client's conference data support version. Set to 1 to manage conference details (e.g., Google Meet links); 0 (default) ignores conference data. Setting to 1 enables reading/preserving conference data but does not generate a new Meet link — use GOOGLECALENDAR_UPDATE_EVENT with create_meeting_room=true to create one.

guests_can_invite_others

boolean

true

Whether attendees other than the organizer can invite others (default: true).

out_of_office_properties

object

Input model for out-of-office properties.

guests_can_see_other_guests

boolean

true

Whether attendees can see who the event's attendees are (default: true).

working_location_properties

object

Input model for working location properties.


Google Calendar Quick Add

Integration name: GOOGLECALENDAR_QUICK_ADD

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'.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

text

string

"Appointment at Somewhere on June 3rd 10am-10:25am"

Natural language input describing the event; Google Calendar parses this for event details like title, date, and time.

calendar_id

string

"primary"

Identifier of the calendar for the event. Use 'primary' for the main calendar, or provide a specific calendar ID (e.g., email address).

send_updates

string

Controls whether email notifications about the event creation are sent to attendees.


Google Calendar Remove Attendee

Integration name: GOOGLECALENDAR_REMOVE_ATTENDEE

Removes an attendee from a specified event in a Google Calendar; the calendar and event must exist. Concurrent calls on the same event can overwrite attendee lists — apply changes sequentially per event.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

event_id

string

Unique identifier of the event. For recurring events, target the master series ID or a specific instance ID; removing an attendee from one instance does not affect other instances in the series.

calendar_id

string

Identifier of the Google Calendar to which the event belongs; 'primary' signifies the user's main calendar.

attendee_email

string

"john@gmail.com"

Email address of the attendee to remove. Must match an attendee email present on the event. If no match is found, the attendee was already removed or was never on the event.


Google Calendar Settings Get

Integration name: GOOGLECALENDAR_SETTINGS_GET

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

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

setting

string

"timezone"

The identifier of the user setting to retrieve. Valid values include: autoAddHangouts, dateFieldOrder, defaultEventLength, format24HourTime, hideInvitations, hideWeekends, locale, remindOnRespondedEventsOnly, showDeclinedEvents, timezone, useKeyboardShortcuts, weekStart


Google Calendar Settings List

Integration name: GOOGLECALENDAR_SETTINGS_LIST

Returns all user settings for the authenticated user. Results include multiple settings keyed by id (e.g., timeZone); locate a specific setting by its id field. timeZone values are IANA identifiers (e.g., America/New_York) — use directly in datetime and event logic; align with timeZone from GOOGLECALENDAR_GET_CALENDAR for consistent notification times.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

pageToken

string

Token specifying which result page to return.

syncToken

string

Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. If the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.

maxResults

integer

Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries.


Google Calendar Settings Watch

Integration name: GOOGLECALENDAR_SETTINGS_WATCH

Watch for changes to Settings resources.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

id

string

"channel-ID-1"

A UUID or similar unique string that identifies this channel.

type

string

"web_hook"

The type of delivery mechanism used for this channel. Must be "web_hook".

token

string

"token-string"

An arbitrary string delivered to the target address with each notification delivered over this channel.

params

object

Additional parameters controlling delivery channel behavior.

address

string

"https://example.com/notifications"

The address where notifications are delivered for this channel.

expiration

integer

1426325213000

Unix timestamp in milliseconds specifying when the API should stop sending notifications for this channel.


Google Calendar Sync Events

Integration name: GOOGLECALENDAR_SYNC_EVENTS

DEPRECATED: Use GOOGLECALENDAR_EVENTS_LIST instead. EventsList already handles syncToken with automatic param stripping. 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.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

pageToken

string

"RANDOM_PAGE_TOKEN_STRING"

Token for paginating results, from a previous response's nextPageToken. Repeat with each returned nextPageToken until no nextPageToken is returned; stopping early silently omits remaining events.

sync_token

string

"RANDOM_SYNC_TOKEN_STRING_FROM_PREVIOUS_CALL"

Token for incremental sync, retrieving only changes since issued. A 410 GONE response indicates an expired token, requiring a full sync. Cannot be combined with timeMin, timeMax, orderBy, query, or updatedMin; mixing these causes the request to fail.

calendar_id

string

"primary"

Google Calendar identifier; 'primary' refers to the authenticated user's main calendar.

event_types

array

"['default', 'focusTime']"

Filters events by specified types (e.g., 'default', 'focusTime', 'outOfOffice', 'workingLocation'). All types returned if omitted.

max_results

integer

"100"

Max events per page (max 2500); Google Calendar's default is used if unspecified.

single_events

boolean

true

If True, expands recurring events into individual instances (excluding master event); otherwise, Google's default handling applies.


Google Calendar Update Event

Integration name: GOOGLECALENDAR_UPDATE_EVENT

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: omitted fields (including attendees, reminders, recurrence, conferencing) are cleared. Always provide the complete desired event state. Use GOOGLECALENDAR_PATCH_EVENT instead for partial edits.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

summary

string

Summary (title) of the event.

event_id

string

"a1b2c3d4e5f6g7h8i9j0k1l2m3"

REQUIRED. The unique identifier of the event to update. This parameter is MANDATORY - events cannot be updated by title, date, or other criteria. You MUST first retrieve the event_id by using GOOGLECALENDAR_FIND_EVENT or GOOGLECALENDAR_EVENTS_LIST to search for the event, then use the returned 'id' field here.

location

string

Geographic location of the event as free-form text.

timezone

string

IANA timezone name from the timezone database (e.g., 'America/New_York', 'Europe/London', 'Asia/Jerusalem', 'UTC'). Required if datetime is naive. For recurring events, start and end must include a timeZone. If not provided, UTC is used. If datetime includes timezone info (Z or offset), this field is optional and defaults to UTC. IMPORTANT: Must be a valid IANA timezone identifier. Values like 'EST', 'PST', 'ISRAEL TIME', or other abbreviations are NOT valid IANA timezone names.

attendees

array

List of attendees. Each attendee can be either: (1) A string email address (e.g., 'user@example.com'), or (2) An object with 'email' (required), 'optional' (boolean, default false), 'displayName' (string), 'comment' (string), 'additionalGuests' (integer), and 'resource' (boolean). To mark an attendee as optional (not required), use object format: {'email': 'user@example.com', 'optional': true}. IMPORTANT: Only valid email addresses are accepted. Plain names cannot be used.

eventType

string

Type of the event, immutable post-creation. 'workingLocation' (REQUIRES Google Workspace Enterprise). Note: 'fromGmail' events cannot be created via API.

recurrence

array

List of RRULE, EXRULE, RDATE, EXDATE lines for recurring events. Supported frequencies: DAILY, WEEKLY, MONTHLY, YEARLY. For recurring events, start.timeZone and end.timeZone must be present. UNTIL values follow RFC 5545: date-only (YYYYMMDD) for all-day events, or UTC datetime with Z suffix (YYYYMMDDTHHMMSSZ) for timed events. UNTIL values with time but missing Z suffix are auto-corrected. Provide an empty list to remove recurrence so the event becomes non-recurring.

visibility

string

Event visibility: 'default', 'public', 'private', or 'confidential'.

calendar_id

string

"primary"

Identifier of the Google Calendar where the event resides. The value 'primary' targets the user's primary calendar.

description

string

Description of the event. Can contain HTML. Optional. Must be omitted for 'birthday' event type.

end_datetime

string

Event end time in ISO 8601 format: YYYY-MM-DDTHH:MM:SS. When provided, this parameter takes precedence over event_duration_hour and event_duration_minutes. If not provided, the end time is calculated using start_datetime + duration. Must be after start_datetime. Fractional seconds and timezone info will be automatically stripped if provided. Examples: '2025-01-16T14:30:00', '2025-01-16T14:30'.

send_updates

string

Options for who should receive notifications about event changes.

transparency

string

'opaque' (busy) or 'transparent' (available).

start_datetime

string

REQUIRED. Event start time in ISO 8601 format: YYYY-MM-DDTHH:MM:SS. IMPORTANT: Natural language expressions like 'tomorrow', 'next Monday', '2pm tomorrow' are NOT supported and will be rejected. You must provide the exact date and time in ISO format. Fractional seconds (e.g., .000) and timezone info (Z, +, -) will be automatically stripped if provided. Examples: '2025-01-16T13:00:00', '2025-01-16T13:00'.

guestsCanModify

boolean

If True, guests can modify the event.

birthdayProperties

object

Properties for birthday events.

create_meeting_room

boolean

Defaults to True. When True, for CREATE operations creates a Google Meet link; for UPDATE operations preserves existing conference data if present, or adds a new Meet link if none exists. Google Workspace accounts will successfully receive a Meet link. Personal Gmail accounts and other unsupported accounts will gracefully fallback to creating an event without a Meet link when conference creation fails. Set to False to skip Meet link operations (won't create new or modify existing conference data). The fallback ensures event creation succeeds even when conference features are unavailable due to account limitations.

event_duration_hour

integer

Number of hours for the event duration. Supports multi-day events (e.g., 240 hours = 10 days). For durations under 1 hour, use event_duration_minutes instead. Ignored if end_datetime is provided.

extended_properties

object

Extended properties of the event for storing custom metadata. Contains 'private' (visible only on this calendar) and/or 'shared' (visible to all attendees) dictionaries mapping string keys to string values. Example: {'private': {'key1': 'value1'}, 'shared': {'key2': 'value2'}}

focusTimeProperties

object

Properties for focusTime events. REQUIRES Google Workspace Enterprise account with Focus Time feature enabled.

guestsCanInviteOthers

boolean

Whether attendees other than the organizer can invite others to the event.

outOfOfficeProperties

object

Properties for outOfOffice events.

event_duration_minutes

integer

Duration in minutes (0-59 ONLY). NEVER use 60+ minutes - use event_duration_hour=1 instead. Maximum value is 59. Combined duration (hours + minutes) must be greater than 0. Ignored if end_datetime is provided.

guestsCanSeeOtherGuests

boolean

Whether attendees other than the organizer can see who the event's attendees are.

workingLocationProperties

object

Properties for workingLocation events. REQUIRES Google Workspace Enterprise. Constraints discovered from testing: - Must set transparency='transparent' and visibility='public' - Description must be omitted - Depending on 'type', include one of 'homeOffice', 'officeLocation', or 'customLocation'