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