Google Calendar

Connect your AI agents to Google Calendar.

Available Tools

list_acl_rules

List all access control rules for a calendar. Returns permissions for each user/group including role and scope. Supports pagination and incremental sync.

get_acl_rule

Retrieve details of a specific ACL rule by ID. Returns role and scope. Rule ID format: ‘user:[email protected]’ or ‘group:[email protected]’.

create_acl_rule

Grant access to a calendar by creating an ACL rule. Share with users, groups, domains, or make public. Specify role and scope type.

update_acl_rule

Completely replace an ACL rule. For partial updates, use patch_acl_rule instead.

patch_acl_rule

Partially update an ACL rule. Only provided fields are modified. Safer than update_acl_rule for simple permission changes.

delete_acl_rule

Permanently delete an ACL rule, removing user/group access. Cannot be undone.

watch_acl_rules

Set up push notifications for ACL rule changes. Requires publicly accessible HTTPS endpoint. Returns channel ID and resource ID to stop the watch later.

get_calendar

Retrieve complete metadata for a calendar including title, description, timezone, and location.

create_calendar

Create a new secondary calendar with custom title, description, timezone, and location.

update_calendar

Update calendar metadata (title, description, timezone, location). Owner only. For user-specific settings like color/visibility, use update_calendar_in_list.

delete_calendar

Permanently delete a secondary calendar and all events. Cannot be undone. Cannot delete primary calendar. For temporary removal, use remove_calendar_from_list.

clear_calendar

Permanently delete ALL events from a calendar without deleting the calendar itself. Cannot be undone. Calendar structure and sharing remain intact.

list_calendar_list

List all calendars in user’s calendar list with settings and permissions. Includes primary, owned, and subscribed calendars. Supports pagination.

get_calendar_from_list

Retrieve user-specific settings for a calendar including custom color, display name, notifications, and visibility.

add_calendar_to_list

Subscribe to an existing calendar by adding it to user’s calendar list. Set custom color, display name, visibility, and notification preferences.

update_calendar_in_list

Update user-specific calendar settings including color, visibility, and notifications. Changes only affect this user.

patch_calendar_in_list

Partially update user-specific calendar settings. Only provided fields are modified.

remove_calendar_from_list

Unsubscribe from a calendar by removing it from user’s list. Calendar itself is not deleted.

watch_calendar_list

Set up push notifications for calendar list changes. Requires publicly accessible HTTPS endpoint. Returns channel ID and resource ID to stop the watch later.

list_events

List events from a Google Calendar with filtering, search, and pagination. Supports time ranges, event types, recurring event expansion, and incremental sync.

get_event

Retrieve complete details of a specific event by ID including all metadata, attendees, recurrence rules, reminders, and conference data.

create_event

Create a new event with title, location, times, attendees, reminders, recurrence, and conference data.

update_event

Update all fields of an existing event. CRITICAL: start/end times must use identical format (both ‘date’ OR both ‘dateTime’). For partial updates, use patch_event instead.

patch_event

Partially update specific fields of an event without replacing the entire event. Only provided fields are modified. Safer than update_event for simple changes.

import_event

Import an event without sending notifications. Useful for bulk imports, migrations, or adding historical events. Preserves original event IDs and timestamps.

quick_add_event

Create an event using natural language text (e.g., ‘Lunch with John tomorrow at 12pm’). Google’s AI parses dates, times, and details automatically.

watch_events

Set up push notifications for event changes. Requires publicly accessible HTTPS endpoint. Returns channel ID and resource ID to stop the watch later.

get_event_instances

Retrieve all instances of a recurring event within a time range. Expands recurring events into actual occurrences with specific dates and times.

stop_watch_channel

Stop an active push notification channel. Requires channel ID and resource ID from watch creation. Cannot be restarted once stopped.

list_user_settings

List all user settings and preferences including timezone, date format, time format, and week start day.

get_user_setting

Retrieve a specific user setting by ID (e.g., ‘timezone’, ‘timeFormat’, ‘weekStart’, ‘locale’).

get_colors

Retrieve available color palette for calendars and events with color IDs mapped to hex codes.

query_freebusy

Query free/busy availability for multiple calendars within a time range. Returns busy periods for scheduling meetings and finding available time slots.

watch_user_settings

Set up push notifications for user settings changes. Requires publicly accessible HTTPS endpoint. Returns channel ID and resource ID to stop the watch later.