google-calendar
Built by Metorial, the integration platform for agentic AI.
google-calendar
Server Summary
Manage calendar events
Schedule meetings naturally
Check calendar availability
Coordinate multiple calendars
A comprehensive Model Context Protocol (MCP) server that provides seamless integration with Google Calendar. This server enables AI assistants and applications to manage calendars, create and modify events, search schedules, and check availability—all through a standardized interface. Whether you need to schedule meetings, coordinate with attendees, or query your calendar for free time slots, this server provides the complete toolset for calendar management.
The Google Calendar MCP Server bridges the gap between AI applications and Google Calendar's powerful scheduling capabilities. It exposes a rich set of tools for calendar and event management, allowing applications to interact with Google Calendar as naturally as a human user would. From simple tasks like adding an appointment using natural language to complex operations like moving events between calendars and checking free/busy status across multiple calendars, this server handles it all.
Retrieves all calendars accessible to the authenticated user. This tool provides visibility into all calendars you can access, including shared calendars from other users.
Parameters:
showHidden (boolean, optional): Whether to include hidden calendars in the resultsminAccessRole (string, optional): Filter calendars by minimum access level - options include "freeBusyReader", "reader", "writer", or "owner"Creates a new calendar with specified properties.
Parameters:
summary (string, required): The name/title of the new calendardescription (string, optional): A detailed description of the calendar's purposetimeZone (string, optional): The timezone for the calendar (e.g., "America/New_York")Modifies properties of an existing calendar.
Parameters:
calendarId (string, required): The ID of the calendar to updatesummary (string, optional): Updated calendar name/titledescription (string, optional): Updated calendar descriptiontimeZone (string, optional): Updated timezone settingPermanently removes a calendar. This operation cannot be undone, so use with caution.
Parameters:
calendarId (string, required): The ID of the calendar to delete (cannot be "primary")Retrieves events within a specified time range from a calendar.
Parameters:
calendarId (string, required): The calendar to query (use "primary" for your main calendar)timeMin (string, optional): Start of the time range in ISO 8601 formattimeMax (string, optional): End of the time range in ISO 8601 formatmaxResults (number, optional): Maximum number of events to return (default: 250)orderBy (string, optional): Sort order - "startTime" or "updated"query (string, optional): Free text search terms to filter eventsCreates a new event with full control over all event properties.
Parameters:
calendarId (string, required): Target calendar ID (use "primary" for main calendar)summary (string, required): Event title/namestartDateTime (string, required): Start time in ISO 8601 format (e.g., "2024-01-15T10:00:00-05:00")endDateTime (string, required): End time in ISO 8601 formatdescription (string, optional): Detailed event descriptionlocation (string, optional): Event location or venuetimeZone (string, optional): Event timezone (e.g., "America/New_York")attendees (array of strings, optional): Email addresses of event attendeessendUpdates (string, optional): Notification preference - "all", "externalOnly", or "none"Modifies an existing calendar event.
Parameters:
calendarId (string, required): Calendar containing the eventeventId (string, required): ID 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 event descriptionlocation (string, optional): Updated locationtimeZone (string, optional): Updated timezoneattendees (array of strings, optional): Updated attendee listsendUpdates (string, optional): Notification preferenceRemoves an event from a calendar.
Parameters:
calendarId (string, required): Calendar containing the eventeventId (string, required): ID of the event to deletesendUpdates (string, optional): Whether to notify attendees - "all", "externalOnly", or "none"Creates an event using natural language input, making it easy to add events without worrying about date formats or structured data.
Parameters:
calendarId (string, required): Target calendar (use "primary" for main calendar)text (string, required): Natural language description (e.g., "Dinner with John tomorrow at 7pm")sendUpdates (string, optional): Notification preferenceTransfers an event from one calendar to another while preserving event details.
Parameters:
sourceCalendarId (string, required): Calendar currently containing the eventeventId (string, required): ID of the event to movedestinationCalendarId (string, required): Calendar to move the event tosendUpdates (string, optional): Notification preferencePerforms a text search across events in a specific calendar.
Parameters:
calendarId (string, required): Calendar to search (use "primary" for main calendar)query (string, required): Search terms to look for in event detailstimeMin (string, optional): Start of time range to search within (ISO 8601 format)timeMax (string, optional): End of time range to search within (ISO 8601 format)maxResults (number, optional): Maximum number of results to return (default: 250)Checks availability across one or more calendars for a specified time period, perfect for finding meeting times or checking scheduling conflicts.
Parameters:
calendarIds (array of strings, required): List of calendar IDs to checktimeMin (string, required): Start of time range in ISO 8601 formattimeMax (string, required): End of time range in ISO 8601 formatThe server provides convenient URI templates for accessing common calendar resources without requiring explicit tool calls.
Access detailed information about a specific calendar.
URI Pattern: calendar://{calendarId}
Retrieve complete details of a specific event within a calendar.
URI Pattern: calendar://{calendarId}/event/{eventId}
Get upcoming events from a specific calendar, useful for displaying what's next on the schedule.
URI Pattern: calendar://{calendarId}/events/upcoming
Access all events scheduled for today in a specific calendar.
URI Pattern: calendar://{calendarId}/events/today
Quick access to a specific event in your primary calendar.
URI Pattern: calendar://primary/event/{eventId}
View upcoming events from your primary calendar without specifying a calendar ID.
URI Pattern: calendar://primary/events/upcoming
This MCP server enables a wide range of calendar automation and integration scenarios:
The server uses ISO 8601 format for all date and time values, ensuring consistent and unambiguous time representations across different timezones. When specifying datetimes, include timezone information in the format: 2024-01-15T10:00:00-05:00.
Calendar IDs can be email addresses for user calendars or unique identifiers for shared calendars. The special value "primary" always refers to the authenticated user's main calendar.
With twelve comprehensive tools and six resource templates, this MCP server provides everything needed for sophisticated calendar management. Whether you're building a scheduling assistant, automating event creation, coordinating team calendars, or analyzing time usage patterns, the Google Calendar MCP Server offers the functionality to make it happen seamlessly and reliably.