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.6.tar.gz (41.4 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.6-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: google_calendar_mcp-0.0.6.tar.gz
  • Upload date:
  • Size: 41.4 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.6.tar.gz
Algorithm Hash digest
SHA256 2900be0882a368215e139ed38161d5939bfb825682b9f05dda29ce1d53c0151c
MD5 d830d3157605bcd3e15df5b815d4c889
BLAKE2b-256 4a312f141ceb3528b7b875256f5c329019f7322067274186be076768c4a26855

See more details on using hashes here.

Provenance

The following attestation bundles were made for google_calendar_mcp-0.0.6.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.6-py3-none-any.whl.

File metadata

File hashes

Hashes for google_calendar_mcp-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 65d964266d1c2dd26335830f94a9ed38ff6a6f6364f793cb22e96eeba5cba765
MD5 2da25ccfe15caccb4ef5cf1370eb3c2e
BLAKE2b-256 7104abe2105af9c865b391e9ec0d750ebc453fc2a6329914d6f74b3dc5170a18

See more details on using hashes here.

Provenance

The following attestation bundles were made for google_calendar_mcp-0.0.6-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