Google Calendar
How to configure the Google Calendar MCP connector
The Google Calendar connector allows the chatbot to read and manage calendar events through Google Calendar API using the google_workspace_mcp server.
Connector Settings
| Field | Value |
|---|---|
| Integration Type | MCP |
| Name | Google Calendar |
| URL | https://google-workspace-calendar.mcp.mitigate.dev/mcp |
| Transport Type | Streamable HTTP |
| Authentication Type | OAuth 2.1 |
| OAuth Client ID | (from Google Cloud Console) |
| OAuth Client Secret | (from Google Cloud Console) |
| OAuth Scopes | openid https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/calendar |
This MCP server does not support Dynamic Client Registration (RFC 7591). You must provide OAuth Client ID and Client Secret from a Google Cloud Console OAuth 2.0 Web application client.
OAuth Scopes
See all available scopes in the Google OAuth 2.0 Scopes documentation.
| Scope | Description |
|---|---|
openid | Enables OpenID Connect sign-in |
https://www.googleapis.com/auth/userinfo.email | Access to the user's email address |
https://www.googleapis.com/auth/calendar.readonly | See and download calendars |
https://www.googleapis.com/auth/calendar.events.readonly | View events on all calendars |
https://www.googleapis.com/auth/calendar.events | View and edit events on all calendars |
https://www.googleapis.com/auth/calendar.events.owned | See, create, change, and delete events on calendars you own |
https://www.googleapis.com/auth/calendar | Full access — see, edit, share, and delete all calendars |
Usage Examples
Once connected, users can interact with Google Calendar through natural language:
- "What meetings do I have today?"
- "Show my calendar for next week"
- "When is my next meeting with the product team?"
Tools
List Calendars
list_calendars
Retrieves a list of calendars accessible to the authenticated user.
Get Events
get_events
Retrieves events from a specified Google Calendar. Can retrieve a single event by ID or multiple events within a time range. You can also search for events by keyword by supplying the optional query param.
Parameters:
- calendar_id - The ID of the calendar to query. Use
primaryfor the user's primary calendar. Defaults toprimary - event_id - The ID of a specific event to retrieve. If provided, retrieves only this event and ignores time filtering parameters
- time_min - The start of the time range (inclusive) in RFC3339 format (e.g.,
2024-05-12T10:00:00Zor2024-05-12). If omitted, defaults to the current time - time_max - The end of the time range (exclusive) in RFC3339 format. If omitted, events starting from
time_minonwards are considered (up tomax_results) - max_results - The maximum number of events to return. Defaults to 25
- query - A keyword to search for within event fields (summary, description, location)
- detailed - Whether to return detailed event information including description, location, attendees, and attendee details. Defaults to false
- include_attachments - Whether to include attachment information in detailed event output. Only applies when
detailedis true. Defaults to false
Create Event
create_event
Creates a new event.
Parameters:
- summary - Event title
- start_time - Start time in RFC3339 format (e.g.,
2023-10-27T10:00:00-07:00or2023-10-27for all-day) - end_time - End time in RFC3339 format (e.g.,
2023-10-27T11:00:00-07:00or2023-10-28for all-day) - calendar_id - Calendar ID. Defaults to
primary - description - Event description
- location - Event location
- attendees - Attendee email addresses
- timezone - Timezone (e.g.,
America/New_York) - attachments - List of Google Drive file URLs or IDs to attach to the event
- add_google_meet - Whether to add a Google Meet video conference. Defaults to false
- reminders - List of reminder objects with
method(popuporemail) andminutes(0–40320). Max 5 reminders - use_default_reminders - Whether to use calendar's default reminders. Defaults to true
- transparency - Event transparency for busy/free status.
opaqueshows as Busy (default),transparentshows as Available/Free - visibility - Event visibility:
default,public,private, orconfidential - guests_can_modify - Whether attendees other than the organizer can modify the event
- guests_can_invite_others - Whether attendees can invite others
- guests_can_see_other_guests - Whether attendees can see who the event's attendees are
Modify Event
modify_event
Modifies an existing event.
Parameters:
- event_id - The ID of the event to modify
- calendar_id - Calendar ID. Defaults to
primary - summary - New event title
- start_time - New start time in RFC3339 format
- end_time - New end time in RFC3339 format
- description - New event description
- location - New event location
- attendees - Attendees as email strings or objects with metadata
- timezone - New timezone (e.g.,
America/New_York) - add_google_meet - Whether to add or remove Google Meet. True adds, false removes, null leaves unchanged
- reminders - List of reminder objects to replace existing reminders
- use_default_reminders - Whether to use calendar's default reminders
- transparency - Event transparency:
opaque(Busy) ortransparent(Available/Free) - visibility - Event visibility:
default,public,private, orconfidential - color_id - Event color ID (1–11)
- guests_can_modify - Whether attendees other than the organizer can modify the event
- guests_can_invite_others - Whether attendees can invite others
- guests_can_see_other_guests - Whether attendees can see who the event's attendees are
Delete Event
delete_event
Deletes an existing event.
Parameters:
- event_id - The ID of the event to delete
- calendar_id - Calendar ID. Defaults to
primary
Query Freebusy
query_freebusy
Returns free/busy information for a set of calendars.
Parameters:
- time_min - The start of the interval in RFC3339 format (e.g.,
2024-05-12T10:00:00Zor2024-05-12) - time_max - The end of the interval in RFC3339 format
- calendar_ids - List of calendar identifiers to query. If not provided, queries the primary calendar
- group_expansion_max - Maximum number of calendar identifiers for a single group. Maximum value is 100
- calendar_expansion_max - Maximum number of calendars for which FreeBusy information is to be provided. Maximum value is 50
Manage Event
manage_event
Unified tool to create, update, delete, or RSVP to a calendar event.
Parameters:
- action - Action to perform:
create,update,delete, orrsvp - calendar_id - Calendar ID. Defaults to
primary - event_id - Event ID. Required for
updateanddelete - summary - Event title (required for
create) - start_time - Start time in RFC3339 format (required for
create) - end_time - End time in RFC3339 format (required for
create) - description - Event description
- location - Event location
- timezone - Timezone (e.g.,
America/New_York) - attendees - Attendee email addresses or objects
- attachments - List of Google Drive file URLs or IDs to attach
- recurrence - RFC5545 recurrence rules (e.g.,
["RRULE:FREQ=WEEKLY;COUNT=10"]) - reminders - Custom reminder objects
- use_default_reminders - Whether to use calendar's default reminders
- add_google_meet - Whether to add or remove a Google Meet conference
- transparency -
opaque(busy) ortransparent(free) - visibility -
default,public,private, orconfidential - color_id - Event color ID (1–11, update only)
- guests_can_modify - Whether attendees can modify the event
- guests_can_invite_others - Whether attendees can invite others
- guests_can_see_other_guests - Whether attendees can see other guests
- response - RSVP response:
accepted,declined,tentative, orneedsAction(rsvp only) - rsvp_comment - Optional message to include with the RSVP response
- send_updates - Notification behavior:
all(default),externalOnly, ornone
Manage Out Of Office
manage_out_of_office
Manages Out of Office events on Google Calendar. These events auto-decline meeting invitations and set the user's status to "Out of office" across Google Workspace.
Parameters:
- action - Action to perform:
create,list,update, ordelete - calendar_id - Calendar ID. Defaults to
primary. Out of Office events live on primary calendars - event_id - Event ID (required for
updateanddelete) - summary - Display text on the calendar. Defaults to
Out of Office - start_time - Start date/time. Use
YYYY-MM-DDfor full-day or RFC3339 for partial-day (required forcreate) - end_time - End date/time (exclusive). Same format as
start_time(required forcreate) - timezone - Timezone (e.g.,
America/New_York). Required for date-only values or dateTime values without an explicit UTC offset - recurrence - RFC5545 recurrence rules for a recurring series
- decline_message - Message included when auto-declining invitations
- auto_decline_mode - How to handle conflicting invitations:
declineAllConflictingInvitations(default),declineOnlyNewConflictingInvitations, ordeclineNone - time_min - For
list: start of time range. Defaults to current time - time_max - For
list: end of time range - max_results - For
list: maximum events to return. Defaults to 10
Manage Focus Time
manage_focus_time
Manages Focus Time events on Google Calendar. These events auto-decline meeting invitations and, by default, set the user's chat status to Do Not Disturb.
Parameters:
- action - Action to perform:
create,list,update, ordelete - calendar_id - Calendar ID. Defaults to
primary. Focus Time events live on primary calendars - event_id - Event ID (required for
updateanddelete) - summary - Display text on the calendar. Defaults to
Focus Time - description - Event description. Useful for adding context about what the focus time is for
- start_time - Start date/time. Use
YYYY-MM-DDfor full-day or RFC3339 for partial-day (required forcreate) - end_time - End date/time (exclusive). Same format as
start_time(required forcreate) - timezone - Timezone (e.g.,
America/New_York). Required for date-only values or dateTime values without an explicit UTC offset - recurrence - RFC5545 recurrence rules for a recurring series
- chat_status - Google Chat status during focus time:
doNotDisturb(default) oravailable - decline_message - Message included when auto-declining invitations
- auto_decline_mode - How to handle conflicting invitations:
declineAllConflictingInvitations(default),declineOnlyNewConflictingInvitations, ordeclineNone - time_min - For
list: start of time range. Defaults to current time - time_max - For
list: end of time range - max_results - For
list: maximum events to return. Defaults to 10
Create Calendar
create_calendar
Creates a new secondary Google Calendar.
Parameters:
- summary - The title/name of the new calendar
- timezone - IANA timezone for the calendar (e.g.,
America/New_York) - description - An optional description for the calendar