An MCP server for Google Calendar, enabling LLMs to read, create, and manage calendar events.
This is a Model Context Protocol (MCP) server that provides integration with Google Calendar. It allows LLMs to read, create, and manage calendar events through a standardized interface.
google-calendar-mcp/
├── src/ # TypeScript source files
├── build/ # Compiled JavaScript output
├── llm/ # LLM-specific configurations and prompts
├── package.json # Project dependencies and scripts
└── tsconfig.json # TypeScript configuration
https://www.googleapis.com/auth/calendar.events
npm install
npm run build
gcp-oauth.keys.json
and place it in the root directory of the project.npm run build
- Build the TypeScript codenpm run build:watch
- Build TypeScript in watch mode for developmentnpm run dev
- Start the server in development mode using ts-nodenpm run auth
- Start the authentication server for Google OAuth flowThe server supports both automatic and manual authentication flows:
gcp-oauth.keys.json
in the root directory of the project.npm start
The server automatically manages token refresh and re-authentication when needed:
For advanced users or troubleshooting, you can manually run the authentication flow:
npm run auth
This will:
gcp-oauth.keys.json
.gcp-saved-tokens.json
with 600 permissionsThe server exposes the following tools:
list-calendars
: List all available calendarslist-events
: List events from a calendarcreate-event
: Create a new calendar eventupdate-event
: Update an existing calendar eventdelete-event
: Delete a calendar eventAdd this configuration to your Claude Desktop config file. E.g. /Users/<user>/Library/Application Support/Claude/claude_desktop_config.json
:
{
"mcpServers": {
"google-calendar": {
"command": "node",
"args": ["path/to/build/index.js"]
}
}
}
Restart Claude Desktop
Along with the normal capabilities you would expect for a calendar integration you can also do really dynamic things like add events from screenshots and images and much more.
Add events from screenshots and images:
Add this event to my calendar based on the attached screenshot.
Supported image formats: PNG, JPEG, GIF Images can contain event details like date, time, location, and description
Check attendance:
Which events tomorrow have attendees who have not accepted the invitation?
Auto coordinate events:
Here's some available that was provided to me by someone I am interviewing. Take a look at the available times and create an event for me to interview them that is free on my work calendar.
Provide your own availability:
Please provide availability looking at both my personal and work calendar for this upcoming week. Choose times that work well for normal working hours on the East Coast. Meeting time is 1 hour
Common issues and solutions:
OAuth Token expires after one week (7 days)
OAuth Token Errors
gcp-oauth.keys.json
is correctly formatted.gcp-saved-tokens.json
and re-authenticatingTypeScript Build Errors
npm install
rm -rf build/
Image Processing Issues
gcp-oauth.keys.json
in the project root.gcp-saved-tokens.json
with restricted file permissionsMIT
An AI-driven server for browser automation using natural language commands, implementing the Model Context Protocol (MCP).
A command-line tool to fetch Google Calendar schedules and convert them into custom prompts or text snippets using a template engine.
Automates marketing operations with AI-powered optimization, real-time analytics, and multi-platform integration.
Provides read-only access to issues within the Linear project management tool.
MCP server for the Outline knowledge base and document management tool.
A GitHub-integrated project management server for Claude Desktop, requiring a personal access token.
Provides real-time currency conversion and exchange rate data using the Frankfurter API.
MCP server for seamless document format conversion using Pandoc, supporting Markdown, HTML, and plain text, with other formats like PDF, csv and docx in development.
Official Taskeract MCP Server for integrating your Taskeract project tasks and load the context of your tasks into your MCP enabled app.
Manages work memories and shares context between AI tools using a local SQLite database.