Enables LLMs to read, create, and manage Google Calendar events through a standardized interface, including features like listing calendars, managing events, and processing calendar information from screenshots and images.
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//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
Discover shared experiences
Shared threads will appear here, showcasing real-world applications and insights from the community. Check back soon for updates!