Google Calendar MCP Server logo

Google Calendar MCP Server

by ymello

An implementation of the Model Context Protocol (MCP) for Google Calendar that allows interaction with calendar events through CLI or Server-Sent Events (SSE). It provides functionalities to manage Google Calendar events programmatically.

View on GitHub

Last updated: N/A

What is Google Calendar MCP Server?

The Google Calendar MCP Server is a Node.js application that acts as a bridge between MCP clients and the Google Calendar API. It allows users to list, create, update, delete, and find available times in their Google Calendar using a command-line interface (CLI) or Server-Sent Events (SSE).

How to use Google Calendar MCP Server?

To use the server, you need to configure your Google OAuth 2.0 credentials in the .env file. You can then run the server in HTTP/SSE mode or CLI mode using npm run start:http or npm run start:stdio, respectively. For integration with MCP clients like Claude Desktop, you need to configure the client to point to the server's endpoints or execute the CLI commands.

Key features of Google Calendar MCP Server

  • List calendar events

  • Create new events

  • Update existing events

  • Delete events

  • Find available times

Use cases of Google Calendar MCP Server

  • Automating calendar event management

  • Integrating Google Calendar with MCP clients

  • Building custom calendar applications

  • Scheduling meetings programmatically

  • Retrieving calendar information via CLI

FAQ from Google Calendar MCP Server

How do I get a Google Refresh Token?

You can use the provided script getToken.js to obtain a refresh token from Google. Run the script with node getToken.js and follow the instructions in your browser.

What are the prerequisites for running the server?

You need Node.js 18 or higher, a Google account with access to the Google Calendar API, and OAuth 2.0 credentials from the Google Cloud Console.

How do I configure the server?

Copy the .env.example file to .env and configure your Google OAuth 2.0 credentials in the .env file.

How do I run the server in HTTP/SSE mode?

Run the command npm run start:http. This will start the server on port 3334 (default).

How do I integrate this server with Claude Desktop?

Add the provided configuration to the claude_desktop_config.json file, ensuring the correct paths and environment variables are set.