Google Calendar

Integrates with
Google Calendar

Google Calendar MCP Server

Interact with your Google Calendar through Claude Desktop using the Model Context Protocol (MCP).

This is a TypeScript-based MCP server that implements Google Calendar integration. It demonstrates core MCP concepts while providing:

  • Calendar event management through MCP URIs
  • Tools for creating and modifying events
  • Prompts for generating calendar insights

Features

Resources

  • Access calendar events via MCP URIs
  • Each event has title, time, description, and attendees
  • Structured event data with proper mime types

Tools

  • create_event - Create new calendar events
    • Takes title, time, and other event details as parameters
    • Directly interfaces with Google Calendar API
  • list_events - View upcoming calendar events
  • [Add other tools you've implemented]

Prompts

  • analyze_schedule - Generate insights about your calendar
    • Includes upcoming events as embedded resources
    • Returns structured prompt for LLM analysis
  • [Add other prompts you've implemented]

Prerequisites

  • Node.js (v14 or higher)
  • A Google Cloud Project with Calendar API enabled
  • OAuth 2.0 Client credentials

Development

Install devbox by following instructions at devbox.sh

curl -fsSL https://get.jetpack.io/devbox | bash

Initialize devbox in the project directory:

devbox init

Start the devbox shell:

devbox shell

Install dependencies:

npm install

Build the server:

npm run build

For development with auto-rebuild:

npm run watch

Installation

To use with Claude Desktop, add the server config:

On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json On Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "Google Calendar": {
      "command": "/path/to/Google Calendar/build/index.js"
    }
  }
}

First-Time Setup

  1. Set up Google Cloud credentials:

    • Go to Google Cloud Console
    • Create a new project or select an existing one
    • Enable the Google Calendar API
    • Create OAuth 2.0 credentials (Desktop application type)
    • Download the client secret JSON file
    • Rename it to .client_secret.json and place it in the project root
  2. Initial Authentication:

    • When first running the server, it will provide an authentication URL
    • Visit the URL in your browser
    • Grant the requested permissions
    • Copy the provided authorization code
    • Paste the code back into the CLI prompt

Debugging

Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector, which is available as a package script:

npm run inspector

The Inspector will provide a URL to access debugging tools in your browser.