Home / MCP / Google Calendar MCP Server
Provides Google Calendar integration for AI assistants, enabling multi-account calendars, event management, free/busy checks, and smart scheduling.
Configuration
View docs{
"mcpServers": {
"google_calendar": {
"command": "npx",
"args": [
"@cocal/google-calendar-mcp"
],
"env": {
"GOOGLE_OAUTH_CREDENTIALS": "/path/to/your/gcp-oauth.keys.json",
"GOOGLE_CALENDAR_MCP_TOKEN_PATH": "/path/to/tokens"
}
}
}
}You can extend your AI assistant with Google Calendar capabilities through a dedicated MCP server. This integration lets you manage multiple Google accounts and calendars, check availability, create and modify events, handle recurring schedules, and even import events from images or links. It’s designed to streamline scheduling within multi-account workflows and coordinate across calendars efficiently.
To use this MCP server, you connect it to your AI assistant client as an MCP endpoint. The main setup involves registering the MCP with your client so you can send calendar-related requests like listing calendars, creating events, checking free time, and responding to invitations. You can operate across multiple Google accounts and calendars, and you can perform actions such as creating, updating, deleting, or searching events in a unified way.
Common usage patterns include: coordinating availability across personal and work calendars, creating events from natural language prompts, managing recurring meetings, and importing events from images or web data. When you use the assistant, you’ll see tools that allow listing calendars, listing events, creating or updating events, and querying free/busy information across all connected accounts.
Prerequisites you need before installing: a Node.js environment (LTS recommended) and access to a Google Cloud project with the Calendar API enabled. You also need OAuth 2.0 Desktop credentials for authentication.
Option 1: Use with npx (Recommended) and configure in your Claude Desktop client. Add this configuration to your Claude Desktop JSON configuration file where your MCP servers are defined. The example uses a single Google Calendar MCP server named google-calendar.
{
"mcpServers": {
"google-calendar": {
"command": "npx",
"args": ["@cocal/google-calendar-mcp"],
"env": {
"GOOGLE_OAUTH_CREDENTIALS": "/path/to/your/gcp-oauth.keys.json"
}
}
}
}Option 2: Local installation. Clone the project, install dependencies, and build before configuring your client. Then point your MCP client to the local build path or specify the credentials path via environment variables.
Option 3: Docker installation. Clone the project, place your OAuth credentials in the container context, and start the services with Docker Compose. Follow the HTTP transport deployment guidance for further configuration options.
Environment variables you may use with the MCP server include the credentials path required for Google OAuth and any tool filtering you want to apply. Tokens are stored on your system securely and credentials never leave your machine.
Tool filtering lets you enable only a subset of available capabilities to optimize performance and security. For example, you might enable only listing and creating events while keeping other operations disabled.
Ensure your OAuth credentials file uses a Desktop App type and that your user is added as a Test User in the Google Cloud Console. If you encounter authentication issues, re-authenticate or re-download credentials and verify that the proper file paths are in place. If tokens expire in test mode, re-authenticate to refresh them.
If you see build or runtime errors, verify Node.js version compatibility, reinstall dependencies, and ensure you are running in the expected environment (npx vs local). For authentication hiccups during browser-based sign-in, try manual authentication steps or switch to a Chromium-based browser for best results.
List all available calendars for the connected Google accounts.
List events with date filtering across one or more calendars.
Get details of a specific event by its ID.
Search events by text query across calendars.
Create new calendar events.
Update existing calendar events.
Delete events from calendars.
Respond to event invitations (Accept, Decline, Maybe, No Response).
Check availability across calendars, including external calendars.
Get the current date and time in the calendar's timezone.
List available event colors.
Add, list, or remove connected Google accounts.