by nspady
google-calendar-mcp is a Model Context Protocol (MCP) server that integrates Google Calendar with AI assistants. It enables AI assistants to manage Google Calendar events, including creating, updating, deleting, and searching for events.
google-calendar-mcp is a Model Context Protocol (MCP) server that integrates Google Calendar with AI assistants like Claude. It allows AI assistants to manage Google Calendar events, including creating, updating, deleting, and searching for events.
To use google-calendar-mcp, you need a Google Cloud project with the Calendar API enabled and OAuth 2.0 credentials (Desktop app type). You can install it via npx (recommended), local installation, or Docker. After installation, configure your AI assistant (e.g., Claude Desktop) to use the MCP server. The server will prompt for authentication on first use, and you'll complete the OAuth flow in your browser.
npx @cocal/google-calendar-mcp
and set the GOOGLE_OAUTH_CREDENTIALS
environment variable.npm install
and npm run build
, then configure Claude Desktop with the local path.docker compose up
.On the first run, the server will prompt for authentication. For test mode, tokens expire after 7 days, and you may need to re-authenticate using npx @cocal/google-calendar-mcp auth
or npm run auth
. To avoid weekly re-authentication, publish your app to production mode in Google Cloud Console.
list-calendars
, list-events
, search-events
, create-event
, update-event
, delete-event
, get-freebusy
, and list-colors
.GOOGLE_OAUTH_CREDENTIALS
is correctly set and the file path is absolute and accessible.npm install && npm run build
again, check Node.js version, or delete build/
directory and rebuild.npx @cocal/google-calendar-mcp auth
(for npx) or npm run auth
(for local) to manually re-authenticate.A Model Context Protocol (MCP) server that provides Google Calendar integration for AI assistants like Claude.
https://www.googleapis.com/auth/calendar.events
and https://www.googleapis.com/auth/calendar
Option 1: Use with npx (Recommended)
Add to your Claude Desktop configuration:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"google-calendar": {
"command": "npx",
"args": ["@cocal/google-calendar-mcp"],
"env": {
"GOOGLE_OAUTH_CREDENTIALS": "/path/to/your/gcp-oauth.keys.json"
}
}
}
}
⚠️ Important Note for npx Users: When using npx, you must specify the credentials file path using the GOOGLE_OAUTH_CREDENTIALS
environment variable.
Option 2: Local Installation
git clone https://github.com/nspady/google-calendar-mcp.git
cd google-calendar-mcp
npm install
npm run build
Then add to Claude Desktop config using the local path or by specifying the path with the GOOGLE_OAUTH_CREDENTIALS
environment variable.
Option 3: Docker Installation
git clone https://github.com/nspady/google-calendar-mcp.git
cd google-calendar-mcp
cp /path/to/your/gcp-oauth.keys.json .
docker compose up
See the Docker deployment guide for detailed configuration options including HTTP transport mode.
If you're in test mode (default), tokens expire after 7 days. If you are using a client like Claude Desktop it should open up a browser window to automatically re-auth. However, if you see authentication errors you can also resolve by following these steps:
For npx users:
export GOOGLE_OAUTH_CREDENTIALS="/path/to/your/gcp-oauth.keys.json"
npx @cocal/google-calendar-mcp auth
For local installation:
npm run auth
To avoid weekly re-authentication, publish your app to production mode (without verification):
See Authentication Guide for details.
Along with the normal capabilities you would expect for a calendar integration you can also do really dynamic, multi-step processes like:
Cross-calendar availability:
Please provide availability looking at both my personal and work calendar for this upcoming week.
I am looking for a good time to meet with someone in London for 1 hr.
Add events from screenshots, images and other data sources:
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
Calendar analysis:
What events do I have coming up this week that aren't part of my usual routine?
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. {available times}
Take a look at the times provided and let me know which ones are open on my calendar.
Tool | Description |
---|---|
list-calendars |
List all available calendars |
list-events |
List events with date filtering |
search-events |
Search events by text query |
create-event |
Create new calendar events |
update-event |
Update existing events |
delete-event |
Delete events |
get-freebusy |
Check availability across calendars, including external calendars |
list-colors |
List available event colors |
Environment Variables:
GOOGLE_OAUTH_CREDENTIALS
- Path to OAuth credentials fileGOOGLE_CALENDAR_MCP_TOKEN_PATH
- Custom token storage location (optional)Claude Desktop Config Location:
~/Library/Application Support/Claude/claude_desktop_config.json
%APPDATA%\Claude\claude_desktop_config.json
OAuth Credentials File Not Found:
GOOGLE_OAUTH_CREDENTIALS
Authentication Errors:
Build Errors:
npm install && npm run build
againbuild/
directory and run npm run build
For re-authentication or troubleshooting:
# For npx installations
export GOOGLE_OAUTH_CREDENTIALS="/path/to/your/credentials.json"
npx @cocal/google-calendar-mcp auth
# For local installations
npm run auth
MIT
Reviews feature coming soon
Stay tuned for community discussions and feedback