Enables natural language interaction with Google Calendar through the Calendar v3 API, allowing management of calendar events and data.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Google Calendar MCP Servershow my meetings for tomorrow"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ποΈ Google Calendar MCP Server
This project integrates the Google Calendar v3 APIs with a custom MCP (Model Context Protocol) Server, enabling natural language interaction with your calendar via tools like Claude Desktop.
It acts as a bridge between your calendar data and an LLM using MCP-compatible HTTP streaming.
π§ Overview
This project contains two core servers:
1. π Google OAuth Server
Handles OAuth 2.0 flow
Stores and refreshes access tokens in a local session file
2. π€ MCP Server
Implements the Model Context Protocol (MCP)
Exposes an HTTP streaming interface
Uses saved credentials to interact with Google Calendar API v3
π Getting Started
Step 1: π§ Set Up Google API Credentials
Go to the Google Cloud Console
Create or select a project
Enable the Google Calendar API
Go to Credentials β Create OAuth 2.0 Client ID
Choose Desktop App
Set branding and add test user emails in audience
Download the OAuth credentials as
client_secret.jsonPlace this file in the root directory of the project
Step 2: π¦ Install Dependencies
poetry installStep 3: πͺ Start the OAuth Server
poetry run uvicorn src.main:app --host 0.0.0.0 --port 8000This should automatically open a browser for OAuth authentication.
If not, visit http://0.0.0.0:8000/google_oauth/
Upon successful authentication, you'll see a success page.
A
session.jsonfile will be created with your access/refresh tokens.

Step 4: π§© Run the MCP Server
poetry run python src/server.pyThis launches a streamable MCP-compatible HTTP server at
http://localhost:8080/mcp
Step 5: π§ Connect MCP Client (Claude Desktop)
Update the config file at:
~/Library/Application Support/Claude/claude_desktop_config.jsonAdd the following entry:
{
"mcpServers": {
"google-calendar-mcp": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:8080/mcp"
]
}
}
}Step 6: β Verify Integration
Open Claude Desktop settings.
If the MCP server was added correctly, it will appear under Settings -> integrations

π§ Demo
https://github.com/user-attachments/assets/27a8e5ee-8f2f-40c7-bdfc-1caa93767efb
π§± Project Structure
project-root/
βββ client_secret.json # Google OAuth credentials
βββ session.json # Access/refresh token storage
βββ pyproject.toml # Poetry project config
βββ README.md
βββ src/
βββ main.py # FastAPI app for OAuth server
βββ server.py # MCP-compatible server
βββ settings.py # App settings and constants
βββ api/
β βββ oauth_callback.py # OAuth endpoint logic
βββ core/
β βββ calendar_client.py # Google Calendar API wrapper
β βββ mcp_tools.py # Tools exposed to MCP clients
β βββ oauth_manager.py # OAuth initiation and flow
β βββ session_manager.py # Token handling
βββ gcalendar_types/ # Typed definitions for Calendar v3 APIπ§© Dependencies
Poetry for dependency management