Google Calendar MCP
@kembec/gcal-mcp · Model Context Protocol Server
Install
npm install -g @kembec/gcal-mcp Create an OAuth client (Desktop app) in Google Cloud Console and download the JSON. Set GOOGLE_OAUTH_CREDENTIALS to its path.
Expose your Google Calendar to Claude, Cursor, or any MCP-compatible model through eleven tools covering every calendar operation. gcal-mcp handles the Google OAuth2 PKCE flow internally — you only need to provide the path to a downloaded OAuth client JSON from Google Cloud Console. Built in Rust, ships as a single static binary with no runtime dependencies. Tokens are cached locally and refreshed automatically.
What you can do
Ask Claude to schedule meetings and check free/busy windows
List today's agenda or upcoming events in natural language
Create, update, or delete events without leaving the chat
Accept or decline meeting invitations through Claude
Requirements
- Google Cloud Console project with the Google Calendar API enabled
- OAuth 2.0 client credentials (Desktop app type) — download as JSON
- Set GOOGLE_OAUTH_CREDENTIALS env var to the path of the downloaded JSON
Configuration
{
"mcpServers": {
"gcal": {
"command": "gcal-mcp",
"env": {
"GOOGLE_OAUTH_CREDENTIALS": "/path/to/client_secret.json"
}
}
}
}
[mcp_servers.gcal]
command = "npx"
args = ["-y", "@kembec/gcal-mcp"]
enabled = true
[mcp_servers.gcal.env]
GOOGLE_OAUTH_CREDENTIALS = "/path/to/client_secret.json"
Tools 11
list-calendars List all calendars in the account
list-events List events in a date range
search-events Search events by keyword
get-event Get details for a specific event
create-event Create a new calendar event
update-event Update an existing event
delete-event Delete an event
respond-to-event Accept, decline, or tentatively respond to an invite
get-freebusy Query free/busy status for a time range
get-current-time Get the current time in a given timezone
manage-accounts Add or remove Google accounts