Skip to main content
Glama
Google Calendar MCP Server

Google Calendar MCP Server

by rsc1102

Google Calendar MCP Server Anthropic Claude

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


πŸ“¦ Installation

  1. Install UV Package Manager: Follow the instructions on the official UV installation guide.

  2. Clone the Repository and Set Up Environment:

    git clone https://github.com/rsc1102/Google_Calendar_MCP.git
    cd Google_Calendar_MCP
    uv sync
  3. Create 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.json file.

      • Place credentials.json inside the Google_Calendar_MCP directory.


πŸ”Œ Integration with Claude Desktop

  1. Locate Configuration File: Open the claude_desktop_config.json file on your system:

    Linux/macOS:

    code ~/Library/Application\ Support/Claude/claude_desktop_config.json

    Windows (PowerShell):

    code $env:AppData\Claude\claude_desktop_config.json
  2. Add MCP Server Configuration: Add the following to the mcpServers section:

    {
        "mcpServers": {
            "calendar": {
                "command": "uv",
                "args": [
                    "--directory",
                    "/ABSOLUTE/PATH/TO/PARENT/FOLDER/Google_Calendar_MCP",
                    "run",
                    "calendar_mcp.py"
                ]
            }
        }
    }
  3. Restart Claude Desktop.

  4. Create a New Project in Claude Desktop.

  5. Set Timezone: In the project's knowledge section, define your local timezone using the IANA Time Zone format (e.g., timeZone="America/New_York").

  6. 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 tools
create_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

    A4.1/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool targets a distinct operation on calendar events: listing, creating, deleting, and updating. There is no overlap or ambiguity between them.

    Naming Consistency5/5

    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.

    Tool Count5/5

    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.

    Completeness4/5

    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

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers