Google Calendar MCP Server
Allows interaction with Google Calendar API, enabling users to list, create, delete, and update calendar events.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Google Calendar MCP Server Show me my events for today"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Google Calendar MCP Server

This repository provides a Model Context Protocol (MCP) server that integrates with the Google Calendar API. It allows users to list, create, delete, and update calendar events. The server is designed to work with Anthropic's Claude Desktop as an MCP client.
π Features
Interact with Google Calendar: list, add, delete, and update events
Seamless integration with Claude Desktop via MCP
Related MCP server: Google Calendar MCP Server
π§° Prerequisites
A Google Account
π¦ Installation
Install UV Package Manager: Follow the instructions on the official UV installation guide.
Clone the Repository and Set Up Environment:
git clone https://github.com/rsc1102/Google_Calendar_MCP.git cd Google_Calendar_MCP uv syncCreate Google Cloud Credentials:
Visit Google Cloud Console.
Create a new project or select an existing one.
Enable the Google Calendar API.
Navigate to APIs & Services > Credentials.
Click Create Credentials > OAuth Client ID:
Choose Desktop app as the application type.
Download the generated
credentials.jsonfile.Place
credentials.jsoninside theGoogle_Calendar_MCPdirectory.
π Integration with Claude Desktop
Locate Configuration File: Open the
claude_desktop_config.jsonfile on your system:Linux/macOS:
code ~/Library/Application\ Support/Claude/claude_desktop_config.jsonWindows (PowerShell):
code $env:AppData\Claude\claude_desktop_config.jsonAdd MCP Server Configuration: Add the following to the
mcpServerssection:{ "mcpServers": { "calendar": { "command": "uv", "args": [ "--directory", "/ABSOLUTE/PATH/TO/PARENT/FOLDER/Google_Calendar_MCP", "run", "calendar_mcp.py" ] } } }Restart Claude Desktop.
Create a New Project in Claude Desktop.
Set Timezone: In the project's knowledge section, define your local timezone using the IANA Time Zone format (e.g.,
timeZone="America/New_York").Start Chatting: Begin interacting with Claude to manage your Google Calendar events.
Note: When using the server for the first time, Google will prompt you to authenticate and grant permission to access your calendar.
π¬ In Action
https://github.com/user-attachments/assets/75da4943-15c4-4ec2-bc5d-af4af3509031
π¬ Support
For issues or questions, please open an issue in this repository.
Available Tools
4 toolscreate_eventA
Creates a calendar event using the provided details.
Args: start (str): Event start time in ISO 8601 format (e.g., '2025-04-06T10:00:00-07:00'). end (str): Event end time in ISO 8601 format (e.g., '2025-04-06T11:00:00-07:00'). timeZone (str): User timezone formatted as an IANA Time Zone Database name (e.g. "Europe/Zurich"). summary (str): Short title or subject of the event. description (str, optional): Detailed description or notes for the event. Defaults to None. location (str, optional): Physical or virtual location of the event. Defaults to None.
Inputs: end (required), start (required), summary (required), timeZone (required), +2 more.
delete_eventB
Deletes an event from the calender.
Args: event_id: Event identifier.
Inputs: event_id (required).
list_eventsA
Retrieve a list of calendar events based on specified filters.
This function queries the calendar for events that match the given criteria. All filter parameters are optional and can be used in combination to narrow down the results.
Args: summary (str, optional): Filter events by their summary (title or subject). description (str, optional): Filter events by text found in the event description. location (str, optional): Filter events based on their location. timeMin (str, optional): ISO 8601 formatted lower time bound (exclusive) for filtering events by end time. Must be in local time and have timezone offset. timeMax (str, optional): ISO 8601 formatted upper time bound (exclusive) for filtering events by start time. Must be in local time and have timezone offset. maxResults (int, optional): Maximum number of events to return.
Returns: list: A list of event objects that match the provided filters.
Inputs: summary, timeMax, timeMin, location, +2 more.
update_eventA
Updates an event by replacing specified fields with new values. Any fields not included in the request will retain their existing values.
Args: event_id (str): Event identifier. start (str, optional): Event start time in ISO 8601 format (e.g., '2025-04-06T10:00:00-04:00'). Defaults to None. end (str, optional): Event end time in ISO 8601 format (e.g., '2025-04-06T11:00:00-04:00'). Defaults to None. timeZone (str, optional): User timezone formatted as an IANA Time Zone Database name (e.g. "Europe/Zurich"). Defaults to None. summary (str, optional): Short title or subject of the event. Defaults to None. description (str, optional): Detailed description or notes for the event. Defaults to None. location (str, optional): Physical or virtual location of the event. Defaults to None.
Inputs: event_id (required), end, start, summary, +3 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
TDQS
Scored across 4 tools
Each tool targets a distinct operation on calendar events: listing, creating, deleting, and updating. There is no overlap or ambiguity between them.
All tool names follow a consistent verb_noun pattern: list_events, create_event, delete_event, update_event. This provides a predictable and clear naming convention.
With only 4 tools, the server is tightly focused on core calendar event operations. The count is well within the ideal range and each tool serves a necessary purpose.
The server offers full CRUD coverage for events: create, read (list), update, and delete. A minor gap is the lack of a direct 'get event by ID' operation, but list_events with filters can work around this.
Maintenance
Related MCP Connectors
Lets Claude, ChatGPT, and Muse read and update your beckett tasks, notes, calendar, and lists.
Calendar API for AI agents: events, availability, Google/Microsoft setup, scheduling, and iCal.
Create and update subscription calendars from ChatGPT, Claude, or Codex.
Connects ChatGPT to your Apple Calendar via a local Mac agent + Vercel relay
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAllows interaction with Google Calendar through Claude Desktop using the Model Context Protocol, enabling calendar event management and schedule analysis.2-
- AlicenseAqualityDmaintenanceProvides comprehensive Google Calendar integration capabilities allowing AI assistants to list, create, update, and delete calendar events through a standardized Model Context Protocol.518 npmMIT
- FlicenseNot gradedqualityDmaintenanceEnables natural language interaction with Google Calendar via the Model Context Protocol, allowing LLMs like Claude to read and manage calendar events through the Google Calendar v3 API.2-
- AlicenseBqualityDmaintenanceEnables creating, modifying, and checking Google Calendar events from Claude desktop app using MCP protocol with secure OAuth2 authentication.22MIT