google-calendar
Built by Metorial, the integration platform for agentic AI.
google-calendar
Server Summary
Manage calendar events
Check availability conflicts
Natural language scheduling
Multi-calendar coordination
A comprehensive Model Context Protocol (MCP) server that seamlessly integrates Google Calendar functionality into your AI workflows. This server enables AI assistants to manage calendars, create and modify events, check availability, and perform natural language scheduling operations with full access to the Google Calendar API.
The Google Calendar MCP Server provides a complete suite of tools for calendar management, allowing AI assistants to interact with Google Calendar as naturally as a human user would. From simple event creation to complex calendar operations like moving events between calendars, checking free/busy status across multiple calendars, and using natural language to schedule appointments, this server brings the full power of Google Calendar to your AI applications.
Whether you need to schedule meetings, coordinate team availability, manage multiple calendars, or search through your event history, this MCP server provides the tools necessary to automate and enhance your calendar workflows through conversational AI interactions.
Retrieves all calendars accessible to the authenticated user. This tool allows you to discover available calendars and their access levels.
Parameters:
showHidden
(boolean, optional): Include hidden calendars in the resultsminAccessRole
(string, optional): Filter calendars by minimum access level (freeBusyReader, reader, writer, or owner)Creates a new calendar event with full control over timing, location, attendees, and notifications.
Parameters:
calendarId
(string, required): The calendar to add the event to (use "primary" for your main calendar)summary
(string, required): The event titlestartDateTime
(string, required): Event start time in ISO 8601 format (e.g., 2024-01-15T10:00:00-05:00)endDateTime
(string, required): Event end time in ISO 8601 formatdescription
(string, optional): Detailed event descriptionlocation
(string, optional): Physical or virtual locationtimeZone
(string, optional): Timezone identifier (e.g., America/New_York)attendees
(array of strings, optional): List of attendee email addressessendUpdates
(string, optional): Notification preference (all, externalOnly, or none)Modifies an existing calendar event, allowing changes to any event property.
Parameters:
calendarId
(string, required): The calendar containing the eventeventId
(string, required): The unique identifier of the event to updatesummary
(string, optional): Updated event titlestartDateTime
(string, optional): Updated start time in ISO 8601 formatendDateTime
(string, optional): Updated end time in ISO 8601 formatdescription
(string, optional): Updated descriptionlocation
(string, optional): Updated locationtimeZone
(string, optional): Updated timezoneattendees
(array of strings, optional): Updated attendee listsendUpdates
(string, optional): Notification preference for the updatePermanently removes an event from a calendar with optional notification controls.
Parameters:
calendarId
(string, required): The calendar containing the eventeventId
(string, required): The unique identifier of the event to deletesendUpdates
(string, optional): Whether to notify attendees (all, externalOnly, or none)Retrieves events from a calendar within a specified time range, with flexible filtering and ordering options.
Parameters:
calendarId
(string, required): The calendar to query (use "primary" for your main calendar)timeMin
(string, optional): Start of time range in ISO 8601 formattimeMax
(string, optional): End of time range in ISO 8601 formatmaxResults
(number, optional): Maximum number of events to return (default: 250)query
(string, optional): Free text search termsorderBy
(string, optional): Sort order (startTime or updated)Creates events using natural language descriptions, leveraging Google Calendar's intelligent parsing capabilities. Simply describe the event in plain English.
Parameters:
calendarId
(string, required): Target calendar (use "primary" for your main calendar)text
(string, required): Natural language event description (e.g., "Lunch with Sarah tomorrow at noon" or "Team meeting every Monday at 2pm")sendUpdates
(string, optional): Notification preferenceTransfers an event from one calendar to another while preserving all event details.
Parameters:
sourceCalendarId
(string, required): The calendar currently containing the eventeventId
(string, required): The unique identifier of the event to movedestinationCalendarId
(string, required): The calendar to move the event tosendUpdates
(string, optional): Whether to notify attendees of the changeCreates a new calendar with custom properties and timezone settings.
Parameters:
summary
(string, required): The calendar name or titledescription
(string, optional): Detailed description of the calendar's purposetimeZone
(string, optional): Default timezone for the calendar (e.g., America/New_York)Modifies the properties of an existing calendar.
Parameters:
calendarId
(string, required): The unique identifier of the calendar to updatesummary
(string, optional): Updated calendar namedescription
(string, optional): Updated descriptiontimeZone
(string, optional): Updated default timezonePermanently removes a calendar and all its events. This action cannot be undone.
Parameters:
calendarId
(string, required): The unique identifier of the calendar to delete (cannot be "primary")Performs a text-based search across events within a calendar, with optional time range filtering.
Parameters:
calendarId
(string, required): The calendar to search (use "primary" for your main calendar)query
(string, required): Search terms to match against event propertiestimeMin
(string, optional): Start of search time range in ISO 8601 formattimeMax
(string, optional): End of search time range in ISO 8601 formatmaxResults
(number, optional): Maximum number of results to return (default: 250)Checks availability across one or more calendars for a specified time range, essential for scheduling meetings and avoiding conflicts.
Parameters:
calendarIds
(array of strings, required): List of calendar IDs to checktimeMin
(string, required): Start of time range to check in ISO 8601 formattimeMax
(string, required): End of time range to check in ISO 8601 formatResource templates provide convenient URI-based access to common calendar views and data, allowing for quick retrieval of frequently accessed information.
Access detailed information about a specific calendar.
URI Pattern: calendar://{calendarId}
Retrieve complete details of a specific event from any calendar.
URI Pattern: calendar://{calendarId}/event/{eventId}
Get a list of upcoming events from a specific calendar, perfect for previewing what's ahead.
URI Pattern: calendar://{calendarId}/events/upcoming
Access all events scheduled for today on a specific calendar.
URI Pattern: calendar://{calendarId}/events/today
Quick access to events from your primary calendar without specifying the calendar ID.
URI Pattern: calendar://primary/event/{eventId}
Retrieve upcoming events from your primary calendar with a simplified URI.
URI Pattern: calendar://primary/events/upcoming
This MCP server enables a wide range of calendar automation scenarios:
The server's comprehensive toolset allows AI assistants to interact with Google Calendar as effectively as a human user, making calendar management more intuitive and efficient through natural language processing and intelligent automation.