
Google Calendar
Connects Claude to the Google Calendar API with full OAuth proxy support, letting you list, create, update, and delete events without storing credentials server-side. Handles the complete calendar workflow: RSVP to invites, find free/busy times, manage recurring events, control calendar sharing via ACLs, and even subscribe to shared calendars. The architecture is clever: it proxies OAuth flows to Google while encoding your callback URL in state, so tokens stay between you and Google. Ships with 15+ tools covering calendars, events, availability queries, and color customization. Reach for this when you want Claude to schedule meetings, block focus time, or answer "what's free Thursday afternoon" without leaving the conversation.
- GitHub stars
- 1
- tools
- 29
- auth
- Secret needed
- transport
- STDIO, HTTP
- env vars
- 4
- last updated
- May 25, 2026
Tools
29 toolsPublic tool metadata for what this MCP can expose to an agent.
GOOGLECALENDAR_ACL_PATCHUpdates an access control rule for a calendar using patch semantics (partial update). This allows modifying specific fields without affecting other properties. Note: Each patch request consumes three quota units. For domain-type ACL rules, if PATCH fails with 500 error, this a...5 params
Updates an access control rule for a calendar using patch semantics (partial update). This allows modifying specific fields without affecting other properties. Note: Each patch request consumes three quota units. For domain-type ACL rules, if PATCH fails with 500 error, this a...
calendar_idstringrolestringrule_idstringscopevaluesend_notificationsbooleanGOOGLECALENDAR_CALENDAR_LIST_INSERTInserts an existing calendar into the user's calendar list.10 params
Inserts an existing calendar into the user's calendar list.
background_colorstringcolor_idstringcolor_rgb_formatbooleandefault_remindersvalueforeground_colorstringhiddenbooleanidstringnotification_settingsvalueselectedbooleansummary_overridestringGOOGLECALENDAR_CALENDAR_LIST_UPDATEUpdates an existing entry on the user\'s calendar list.10 params
Updates an existing entry on the user\'s calendar list.
backgroundColorstringcalendar_idstringcolorIdstringcolorRgbFormatbooleandefaultRemindersvalueforegroundColorstringhiddenbooleannotificationSettingsvalueselectedbooleansummaryOverridestringGOOGLECALENDAR_CALENDARS_DELETEDeletes a secondary calendar. Use calendars.clear for clearing all events on primary calendars.1 params
Deletes a secondary calendar. Use calendars.clear for clearing all events on primary calendars.
calendar_idstringGOOGLECALENDAR_CALENDARS_UPDATEUpdates metadata for a calendar.5 params
Updates metadata for a calendar.
calendarIdstringdescriptionstringlocationstringsummarystringtimeZonestringGOOGLECALENDAR_CLEAR_CALENDARClears a primary calendar. This operation deletes all events associated with the primary calendar of an account.1 params
Clears a primary calendar. This operation deletes all events associated with the primary calendar of an account.
calendar_idstringGOOGLECALENDAR_CREATE_EVENTCreate a Google Calendar event using `start_datetime` plus `event_duration_hour` and `event_duration_minutes` fields to derive the end time. Requires calendar write access. The organizer is added as an attendee unless `exclude_organizer` is True. Example request to create even...23 params
Create a Google Calendar event using `start_datetime` plus `event_duration_hour` and `event_duration_minutes` fields to derive the end time. Requires calendar write access. The organizer is added as an attendee unless `exclude_organizer` is True. Example request to create even...
attendeesvaluebirthdayPropertiesvaluecalendar_idstringcreate_meeting_roombooleandescriptionstringeventTypestringbirthday · default · focusTime · outOfOffice · workingLocationdefault: defaultevent_duration_hourintegerevent_duration_minutesintegerexclude_organizerbooleanfocusTimePropertiesvalueguestsCanInviteOthersbooleanguestsCanSeeOtherGuestsbooleanguests_can_modifybooleanlocationstringoutOfOfficePropertiesvaluerecurrencevaluesend_updatesbooleanstart_datetimestringsummarystringtimezonestring+3 more parameters. See the server's own documentation for the full schema.
GOOGLECALENDAR_DELETE_EVENTDeletes a specified event by `event_id` from a Google Calendar (`calendar_id`); this action is idempotent and raises a 404 error if the event is not found.2 params
Deletes a specified event by `event_id` from a Google Calendar (`calendar_id`); this action is idempotent and raises a 404 error if the event is not found.
calendar_idstringevent_idstringGOOGLECALENDAR_DUPLICATE_CALENDARCreates a new, empty Google Calendar with the specified title (summary).1 params
Creates a new, empty Google Calendar with the specified title (summary).
summarystringGOOGLECALENDAR_EVENTS_INSTANCESReturns instances of the specified recurring event.10 params
Returns instances of the specified recurring event.
calendarIdstringeventIdstringmaxAttendeesvaluemaxResultsvalueoriginalStartstringpageTokenstringshowDeletedbooleantimeMaxstringtimeMinstringtimeZonestringGOOGLECALENDAR_EVENTS_LISTReturns events on the specified calendar.19 params
Returns events on the specified calendar.
alwaysIncludeEmailbooleancalendarIdstringeventTypesstringiCalUIDstringmaxAttendeesvaluemaxResultsvalueorderBystringpageTokenstringprivateExtendedPropertystringqstringsharedExtendedPropertystringshowDeletedbooleanshowHiddenInvitationsbooleansingleEventsbooleansyncTokenstringtimeMaxstringtimeMinstringtimeZonestringupdatedMinstringGOOGLECALENDAR_EVENTS_MOVEMoves an event to another calendar, i.e., changes an event's organizer.4 params
Moves an event to another calendar, i.e., changes an event's organizer.
calendar_idstringdestinationstringevent_idstringsend_updatesvalueGOOGLECALENDAR_EVENTS_WATCHWatch for changes to Events resources.7 params
Watch for changes to Events resources.
addressstringcalendarIdstringidstringparamsvaluepayloadbooleantokenstringtypestringGOOGLECALENDAR_FIND_EVENTFinds 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.11 params
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.
calendar_idstringevent_typesarraymax_resultsintegerorder_bystringpage_tokenstringquerystringshow_deletedbooleansingle_eventsbooleantimeMaxstringtimeMinstringupdated_minstringGOOGLECALENDAR_FIND_FREE_SLOTSFinds both free and busy time slots in Google Calendars for specified calendars within a defined time range (defaults to the current day UTC if `time_min`/`time_max` are omitted). Returns busy intervals enriched with event details and calculates free slots by finding gaps betw...6 params
Finds both free and busy time slots in Google Calendars for specified calendars within a defined time range (defaults to the current day UTC if `time_min`/`time_max` are omitted). Returns busy intervals enriched with event details and calculates free slots by finding gaps betw...
calendar_expansion_maxintegergroup_expansion_maxintegeritemsarraytime_maxstringtime_minstringtimezonestringGOOGLECALENDAR_FREE_BUSY_QUERYReturns free/busy information for a set of calendars.6 params
Returns free/busy information for a set of calendars.
calendarExpansionMaxvaluegroupExpansionMaxvalueitemsarraytimeMaxstringtimeMinstringtimeZonestringGOOGLECALENDAR_GET_CALENDARRetrieves a specific Google Calendar, identified by `calendar_id`, to which the authenticated user has access.1 params
Retrieves a specific Google Calendar, identified by `calendar_id`, to which the authenticated user has access.
calendar_idstringGOOGLECALENDAR_GET_CURRENT_DATE_TIMEGets the current date and time, allowing for a specific timezone offset.1 params
Gets the current date and time, allowing for a specific timezone offset.
timezonenumberGOOGLECALENDAR_LIST_ACL_RULESRetrieves the list of access control rules (ACLs) for a specified calendar, providing the necessary 'rule_id' values required for updating specific ACL rules.5 params
Retrieves the list of access control rules (ACLs) for a specified calendar, providing the necessary 'rule_id' values required for updating specific ACL rules.
calendar_idstringmax_resultsvaluepage_tokenstringshow_deletedbooleansync_tokenstringGOOGLECALENDAR_LIST_CALENDARSRetrieves a paginated list of calendars from the user's calendar list, with optional filtering and sync capabilities.6 params
Retrieves a paginated list of calendars from the user's calendar list, with optional filtering and sync capabilities.
maxResultsintegerminAccessRolevaluepageTokenstringshowDeletedbooleanshowHiddenbooleansyncTokenstringGOOGLECALENDAR_PATCH_CALENDARPartially updates (PATCHes) an existing Google Calendar, modifying only the fields provided; `summary` is mandatory and cannot be an empty string, and an empty string for `description` or `location` clears them.5 params
Partially updates (PATCHes) an existing Google Calendar, modifying only the fields provided; `summary` is mandatory and cannot be an empty string, and an empty string for `description` or `location` clears them.
calendar_idstringdescriptionstringlocationstringsummarystringtimezonestringGOOGLECALENDAR_PATCH_EVENTUpdate 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.14 params
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.
attendeesvaluecalendar_idstringconference_data_versionvaluedescriptionstringend_timestringevent_idstringlocationstringmax_attendeesvaluersvp_responsestringsend_updatesstringstart_timestringsummarystringsupports_attachmentsbooleantimezonestringGOOGLECALENDAR_QUICK_ADDParses 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'.3 params
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'.
calendar_idstringsend_updatesstringall · externalOnly · nonedefault: nonetextstringGOOGLECALENDAR_REMOVE_ATTENDEERemoves an attendee from a specified event in a Google Calendar; the calendar and event must exist.3 params
Removes an attendee from a specified event in a Google Calendar; the calendar and event must exist.
attendee_emailstringcalendar_idstringevent_idstringGOOGLECALENDAR_SETTINGS_LISTReturns all user settings for the authenticated user.3 params
Returns all user settings for the authenticated user.
maxResultsvaluepageTokenstringsyncTokenstringGOOGLECALENDAR_SETTINGS_WATCHWatch for changes to Settings resources.5 params
Watch for changes to Settings resources.
addressstringidstringparamsvaluetokenstringtypestringGOOGLECALENDAR_SYNC_EVENTSSynchronizes 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.6 params
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.
calendar_idstringevent_typesvaluemax_resultsvaluepageTokenstringsingle_eventsbooleansync_tokenstringGOOGLECALENDAR_UPDATE_ACL_RULEUpdates an access control rule for the specified calendar.4 params
Updates an access control rule for the specified calendar.
calendar_idstringrolestringrule_idstringsend_notificationsbooleanGOOGLECALENDAR_UPDATE_EVENTUpdates an existing event by `event_id` in a Google Calendar; this is a full PUT replacement, so provide all desired fields as unspecified ones may be cleared or reset.23 params
Updates an existing event by `event_id` in a Google Calendar; this is a full PUT replacement, so provide all desired fields as unspecified ones may be cleared or reset.
attendeesvaluebirthdayPropertiesvaluecalendar_idstringcreate_meeting_roombooleandescriptionstringeventTypestringbirthday · default · focusTime · outOfOffice · workingLocationdefault: defaultevent_duration_hourintegerevent_duration_minutesintegerevent_idstringfocusTimePropertiesvalueguestsCanInviteOthersbooleanguestsCanSeeOtherGuestsbooleanguests_can_modifybooleanlocationstringoutOfOfficePropertiesvaluerecurrencevaluesend_updatesbooleanstart_datetimestringsummarystringtimezonestring+3 more parameters. See the server's own documentation for the full schema.
Sponsors
Configuration
GOOGLE_ACCESS_TOKEN*secretGoogle OAuth access token with Calendar scopes.
MCP_TRANSPORT*Transport type.
GOOGLE_CLIENT_ID*Google OAuth client ID.
GOOGLE_CLIENT_SECRET*secretGoogle OAuth client secret.
Readme
google-cal-mcp
MCP server for Google Calendar - list, create, update, and manage calendar events.
Use Cases
Schedule meetings: "Set up a 30-min sync with Sarah next week" → finds a free slot, creates the event with a Meet link, and sends the invite.
RSVP to invites: "Accept the team offsite but decline the vendor demo" → responds to pending invitations automatically.
Find availability: "When am I free this Thursday afternoon?" → queries your calendar and returns open slots.
Reschedule events: "Move my 1:1 with Alex to Friday at 2pm" → updates the event and notifies attendees.
Daily briefing: "What's on my calendar today?" → lists all events with times, locations, and attendees.
Block focus time: "Block 2 hours tomorrow morning for deep work" → creates a calendar event to protect your time.
(These are just examples - any workflow that needs calendar access can use this.)
Setup
1. Create Google OAuth credentials
Details
- Repository
- github.com/domdomegg/google-calendar-mcp
- Website
- github.com/domdomegg/google-calendar-mcp#readme
- Category
- Productivity & Office
- Package
google-cal-mcp- Transport
- STDIO, HTTP
- Auth
- Required
- Registry
- MCP registry, active