Google Calendar MCP Server
Manage, schedule, and sync multiple Google Calendars through AI chat assistants.
Data last scanned last week · Reviewed last month
Overview
This TypeScript-based server bridges Google Calendar with your AI assistant, enabling complex scheduling tasks like detecting cross-account conflicts and checking availability. It provides comprehensive event management, allowing users to create, search, and modify calendar entries using natural language commands. Beyond basic scheduling, the tool supports intelligent imports that ingest dates from images, PDFs, or web links. By configuring multiple accounts and calendars, users can query and aggregate events from work and personal schedules within a unified interface.
Our verdict
With a security score of 50/100, this server carries a high risk level. The score reflects that the project is community-maintained rather than vendor-official and lacks an independent editorial review, meaning users should exercise caution regarding the handling of their OAuth credentials. It is suitable for power users who understand the risks of connecting third-party MCP servers to their Google data but should be avoided in environments requiring strict security compliance.
- Supports multiple Google accounts and calendars simultaneously
- Enables advanced recurring event modification
- Contains only 6 direct dependencies
- Provides real documentation for OAuth setup
- Security score of 50/100 denotes high risk
- Community-maintained software without official vendor support
- Requires sensitive OAuth credential file paths
- Lacks external security or editorial review
Setup
{
"mcpServers": {
"google-calendar-mcp": {
"args": [
"-y",
"@cocal/google-calendar-mcp"
],
"command": "npx"
}
}
}Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows), then restart Claude Desktop. Some servers require API keys or tokens as environment variables — check the project's README and add an "env" object if needed.
- No read-only mode — running this grants full read/write access.
- No built-in authentication — anyone with access to this config can invoke every tool it exposes.
Tools
| Tool | Description | Risk |
|---|---|---|
| list-calendars | List all available calendars | low |
| list-events | List events with date filtering | low |
| get-event | Get details of a specific event by ID | low |
| search-events | Search events by text query | low |
| create-event | Create new calendar events | medium |
| update-event | Update existing events | medium |
| delete-event | Delete events | high |
| respond-to-event | Respond to event invitations (Accept, Decline, Maybe, No Response) | medium |
| get-freebusy | Check availability across calendars, including external calendars | low |
| get-current-time | Get current date and time in calendar's timezone | low |
Compatibility
| Client | Local | Docker | Remote | Read-only |
|---|---|---|---|---|
| ChatGPT | ||||
| Claude Desktop | ||||
| Cursor | ||||
| VS Code | ||||
| Windsurf |
Frequently asked questions
›What prerequisites are needed to set up this server?
You need a Google Cloud project with the Calendar API enabled and OAuth 2.0 credentials configured for a 'Desktop app' application type.
›How do I authenticate the server for the first time?
Start your AI assistant like Claude Desktop and explicitly ask it to 'Authenticate with Google Calendar' to trigger the OAuth flow in your browser.
›Why are my authentication tokens expiring every week?
When your Google Cloud app is in test mode, tokens expire after 7 days; you can avoid this by publishing your app in the Google Cloud Console.
›How do I handle multiple Google accounts?
You can add, list, or remove accounts directly through your AI assistant using the manage-accounts tool, or use the CLI command 'npm run account auth' with a nickname.
›What happens if I don't provide an account parameter to a tool?
Read-only tools will merge results from all configured accounts, while write tools will attempt to automatically select the account with the necessary permissions.
›What should I do if I see a -32600 error?
This error typically indicates that you have not yet completed the initial authentication step; perform the 'Authenticate with Google Calendar' command in your chat interface to resolve it.
Alternatives
Changelog
Badge
Maintain this server? Add the live badge to your README.