# Calendar capabilities 31 operations across MCP tools and REST methods. ⚠️ marks destructive operations (MCP `destructiveHint`): removals, sends, and standing side effects. | Operation | Source | Description | | --- | --- | --- | | [`list_events`](https://developers.google.com/workspace/calendar/api/v3/reference/mcp/tools_list/list_events) | MCP Tool | List events on a calendar, optionally filtered, ordered, and paginated. | | [`get_event`](https://developers.google.com/workspace/calendar/api/v3/reference/mcp/tools_list/get_event) | MCP Tool | Get a single event from a calendar by id. | | [`list_calendars`](https://developers.google.com/workspace/calendar/api/v3/reference/mcp/tools_list/list_calendars) | MCP Tool | List the calendars on the user's calendar list, paginated. | | [`suggest_time`](https://developers.google.com/workspace/calendar/api/v3/reference/mcp/tools_list/suggest_time) | MCP Tool | Suggest free time slots where the given attendees can meet within a time window. | | [`create_event`](https://developers.google.com/workspace/calendar/api/v3/reference/mcp/tools_list/create_event) | MCP Tool | Create an event on a calendar. | | [`update_event`](https://developers.google.com/workspace/calendar/api/v3/reference/mcp/tools_list/update_event) | MCP Tool | Update fields of an existing event; unset fields are left unchanged. Attendee changes are deltas; for whole-list replacement and the REST-only fields (recurrence, transparency, extendedProperties), use patch_event. | | [`delete_event`](https://developers.google.com/workspace/calendar/api/v3/reference/mcp/tools_list/delete_event) ⚠️ | MCP Tool | Delete an event from a calendar, returning the deleted event. | | [`respond_to_event`](https://developers.google.com/workspace/calendar/api/v3/reference/mcp/tools_list/respond_to_event) | MCP Tool | Respond to an event invitation: declined, tentative, or accepted. | | [`list_event_instances`](https://developers.google.com/workspace/calendar/api/v3/reference/events/instances) | REST Method | List the instances of a recurring event, optionally filtered and paginated. | | [`move_event`](https://developers.google.com/workspace/calendar/api/v3/reference/events/move) | REST Method | Move an event to another calendar; only default-type events can move. | | [`quick_add_event`](https://developers.google.com/workspace/calendar/api/v3/reference/events/quickAdd) | REST Method | Create an event from a natural-language description. | | [`patch_event`](https://developers.google.com/workspace/calendar/api/v3/reference/events/patch) | REST Method | Patch any REST field of an event, including those update_event omits; unset fields are left unchanged. | | [`get_calendar`](https://developers.google.com/workspace/calendar/api/v3/reference/calendars/get) | REST Method | Get a calendar (its title, description, location, and time zone) by id. | | [`create_calendar`](https://developers.google.com/workspace/calendar/api/v3/reference/calendars/insert) | REST Method | Create a secondary calendar. | | [`update_calendar`](https://developers.google.com/workspace/calendar/api/v3/reference/calendars/patch) | REST Method | Update a calendar's title, description, location, and/or time zone; unset fields are left unchanged. | | [`delete_calendar`](https://developers.google.com/workspace/calendar/api/v3/reference/calendars/delete) ⚠️ | REST Method | Permanently delete a secondary calendar and all of its events. | | [`clear_calendar`](https://developers.google.com/workspace/calendar/api/v3/reference/calendars/clear) ⚠️ | REST Method | Permanently delete all events from the primary calendar. | | [`get_calendar_entry`](https://developers.google.com/workspace/calendar/api/v3/reference/calendarList/get) | REST Method | Get the user's calendar list entry for a calendar: access role, colors, visibility, and default reminders. | | [`add_calendar_entry`](https://developers.google.com/workspace/calendar/api/v3/reference/calendarList/insert) | REST Method | Add an existing calendar to the user's calendar list (subscribe). | | [`update_calendar_entry`](https://developers.google.com/workspace/calendar/api/v3/reference/calendarList/patch) | REST Method | Update the user's view of a calendar (title override, colors, visibility, default reminders); unset fields are left unchanged. | | [`remove_calendar_entry`](https://developers.google.com/workspace/calendar/api/v3/reference/calendarList/delete) ⚠️ | REST Method | Remove a calendar from the user's calendar list (unsubscribe); the calendar itself is untouched. | | [`list_acl_rules`](https://developers.google.com/workspace/calendar/api/v3/reference/acl/list) | REST Method | List the rules on a calendar's access control list: who the calendar is shared with and at what role. Paginated. | | [`get_acl_rule`](https://developers.google.com/workspace/calendar/api/v3/reference/acl/get) | REST Method | Get a single rule from a calendar's access control list by its rule ID: the role it grants and the scope it grants to. | | [`add_acl_rule`](https://developers.google.com/workspace/calendar/api/v3/reference/acl/insert) ⚠️ | REST Method | Share a calendar by adding a rule to its access control list, granting a role (none, freeBusyReader, reader, writerWithoutPrivateAccess, writer, owner) to a scope (a user, a group, a domain, or the public). If the scope already has a rule, this replaces that rule's role rather than creating a duplicate. Sharing notifications are enabled by default; pass sendNotifications false to suppress them. | | [`update_acl_rule`](https://developers.google.com/workspace/calendar/api/v3/reference/acl/update) ⚠️ | REST Method | Replace a rule on a calendar's access control list, setting the role granted to a scope. Sharing notifications are enabled by default; pass sendNotifications false to suppress them. Access removal never notifies. | | [`patch_acl_rule`](https://developers.google.com/workspace/calendar/api/v3/reference/acl/patch) ⚠️ | REST Method | Update a rule on a calendar's access control list, changing the role granted to a scope; unset fields are left unchanged. Sharing notifications are enabled by default; pass sendNotifications false to suppress them. Access removal never notifies. | | [`delete_acl_rule`](https://developers.google.com/workspace/calendar/api/v3/reference/acl/delete) ⚠️ | REST Method | Revoke a rule from a calendar's access control list, removing that scope's access to the calendar. Access removal does not send sharing notifications. | | [`query_free_busy`](https://developers.google.com/workspace/calendar/api/v3/reference/freebusy/query) | REST Method | Query the busy intervals of a set of calendars over a time window. | | [`get_colors`](https://developers.google.com/workspace/calendar/api/v3/reference/colors/get) | REST Method | Get the color palettes for calendars and events, keyed by color ID. | | [`list_settings`](https://developers.google.com/workspace/calendar/api/v3/reference/settings/list) | REST Method | List the user's Calendar settings, paginated. | | [`get_setting`](https://developers.google.com/workspace/calendar/api/v3/reference/settings/get) | REST Method | Get a single user setting by id. |