Skip to main content

Google Calendar MCP

Google Calendar MCP is a Model Context Protocol (MCP) server implementation in Python with Service Account authentication.

日本語 README はこちら

Overview

This project implements the Google Calendar API as an MCP server in Python. It is a port from the original TypeScript version, with authentication changed from OAuth 2.0 to Service Account.

Features

  • Python 3.13 support
  • MCP (Model Context Protocol) server implementation
  • Google Calendar API integration
  • Service Account authentication
  • Dependency management with uv

Requirements

  • Python 3.13 or higher
  • A Google Cloud Platform project and a valid Service Account
  • The Service Account must have access to the Google Calendar API

Installation

# Clone the repository
git clone https://github.com/youyo/google-calendar-mcp.git
cd google-calendar-mcp

# Install dependencies
uv pip install -r requirements.txt

Configuration

  1. Create a project in Google Cloud Platform and enable the Google Calendar API.
  2. Create a Service Account and download the JSON key file.
  3. Set the environment variable GOOGLE_APPLICATION_CREDENTIALS to the path of the JSON key file.
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json

Optionally, you can set the default calendar ID via the environment variable:

export GOOGLE_CALENDAR_ID=your-calendar-id@example.com

If not specified in arguments, this value will be used as the default calendarId.

Example: MCP configuration file

To use this server with an MCP client, add the following to your MCP configuration file. Set both GOOGLE_APPLICATION_CREDENTIALS and GOOGLE_CALENDAR_ID in the env section to specify authentication and the default calendar:

{
  "mcpServers": {
    "google-calendar-mcp": {
      "command": "uvx",
      "args": ["google-calendar-mcp@latest"],
      "env": {
        "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/service-account.json",
        "GOOGLE_CALENDAR_ID": "your-calendar-id@example.com"
      }
    }
  }
}

If calendarId is not specified in tool arguments, the value of GOOGLE_CALENDAR_ID will be used as the default.

Usage

# Start the server
uvx google-calendar-mcp

Available Tools

  • list-calendars: List all available calendars
  • list-events: List events from a calendar
  • search-events: Search for events in a calendar by text query
  • list-colors: List available color IDs and their meanings for calendar events
  • create-event: Create a new calendar event
  • update-event: Update an existing calendar event
  • delete-event: Delete a calendar event

Tool Required Arguments

Tool Required Arguments Optional Arguments / Notes
list-calendars (none) -
list-events calendarId timeMin, timeMax, maxResults
search-events calendarId, query timeMin, timeMax, maxResults
list-colors (none) -
create-event calendarId, summary start, end, timeZone, location, description, attendees, etc.
update-event calendarId, eventId summary, start, end, timeZone (dateTime 時必須), location, etc.
delete-event calendarId, eventId -

Notes

  • calendarId はほぼ全てのカレンダー操作で必須です。
  • eventId はイベント更新・削除時に必須です。
  • summary はイベント作成時に必須です。
  • timeZone は start/end が dateTime 形式の場合に必須です。
  • その他のパラメータは Google Calendar API の仕様に準じます。

License

MIT

Metadata

Release files for google-calendar-mcp 0.0.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for google-calendar-mcp 0.0.8
File Size Uploaded
google_calendar_mcp-0.0.8.tar.gz 41.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for google-calendar-mcp 0.0.8
File Interpreter ABI Platform
google_calendar_mcp-0.0.8-py3-none-any.whl Python 3 none any Details

Total release size: 51.9 kB

Release files / google_calendar_mcp-0.0.8.tar.gz

Download URL google_calendar_mcp-0.0.8.tar.gz
Size 41.5 kB
Tags Source
SHA-256 checksum
How to use checksums
db00b79daf7451611788d41a503afd65354587fa9bc5a1b2573ae7257cb7893b
BLAKE2b-256 checksum
How to use checksums
4ef0b7e5afa99981989c36d482dcbdedf22bdba99bba0469de5481b388b70a6c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 2, 2025.

Transparency log

Release files / google_calendar_mcp-0.0.8-py3-none-any.whl

Download URL google_calendar_mcp-0.0.8-py3-none-any.whl
Size 10.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7392b7a526490b918af04497f11f2864046fa6e0b80dcc63f01f80592a4f213f
BLAKE2b-256 checksum
How to use checksums
00def60a9ee0ea8708c842eba962d7a890af2105a243330a78f013e9e0a2f21d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 2, 2025.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page