Skip to main content

Google Calendar MCP Server with Service Account authentication

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

google_calendar_mcp-0.0.7.tar.gz (41.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

google_calendar_mcp-0.0.7-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

Details for the file google_calendar_mcp-0.0.7.tar.gz.

File metadata

  • Download URL: google_calendar_mcp-0.0.7.tar.gz
  • Upload date:
  • Size: 41.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for google_calendar_mcp-0.0.7.tar.gz
Algorithm Hash digest
SHA256 e6d2dae1e3567eb57b83c850e5098ab7e755e857218ded8eb372f6eadd0ea692
MD5 86481b1e3236a99a95fe2b1ee9368946
BLAKE2b-256 91a5d67a96fe9c69919d333250ac0ae869a02bc0c7cb186bfac94026d6a998d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for google_calendar_mcp-0.0.7.tar.gz:

Publisher: publish.yaml on youyo/google-calendar-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file google_calendar_mcp-0.0.7-py3-none-any.whl.

File metadata

File hashes

Hashes for google_calendar_mcp-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 c07138341d7ef595de8c1e5bf08bbeaa219281647523dda0a650e34fcfce7525
MD5 c5ab8f6e082f0fa4e64881d0a6684959
BLAKE2b-256 17ce24bfb6bf75663dedb79f2d101f5d0f1e1bfb3ac69f4babdb9ebca06a58ad

See more details on using hashes here.

Provenance

The following attestation bundles were made for google_calendar_mcp-0.0.7-py3-none-any.whl:

Publisher: publish.yaml on youyo/google-calendar-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page