mcp-google-gcal
An MCP server that enables AI assistants to manage Google Calendar events, calendars, sharing, and scheduling with full read/write access across multiple Google accounts, supporting natural language creation, recurring events, and Google Meet.
README
mcp-google-gcal
An MCP server for Google Calendar. Lets AI assistants manage events, calendars, sharing, and scheduling with full read/write access across multiple Google accounts. Supports natural language event creation, recurring events, Google Meet conferencing, free/busy queries, and ACL management.
Tools
Events
| Tool | Description |
|---|---|
gcal_list_events |
List events with time range, search, pagination, and event type filtering |
gcal_get_event |
Get full event details by ID |
gcal_create_event |
Create event with attendees, recurrence, Google Meet, attachments, and more |
gcal_update_event |
Update event fields using patch semantics |
gcal_delete_event |
Delete event with notification control |
gcal_quick_add |
Create event from natural language text |
gcal_move_event |
Move an event from one calendar to another |
gcal_list_instances |
List individual occurrences of a recurring event |
gcal_import_event |
Import event from external system preserving iCalUID |
Calendars
| Tool | Description |
|---|---|
gcal_list_calendars |
List all calendars on the user's calendar list |
gcal_get_calendar |
Get calendar metadata (summary, description, timezone) |
gcal_create_calendar |
Create a new secondary calendar |
gcal_update_calendar |
Edit calendar metadata using patch semantics |
gcal_delete_calendar |
Delete a secondary calendar |
gcal_clear_calendar |
Clear all events from the primary calendar (irreversible) |
Calendar List (User Preferences)
| Tool | Description |
|---|---|
gcal_get_calendar_list_entry |
Get a calendar's list-level settings (color, reminders, notifications) |
gcal_subscribe_calendar |
Add an existing calendar to the user's calendar list |
gcal_update_calendar_list_entry |
Update color, reminders, or notification preferences |
gcal_unsubscribe_calendar |
Remove a calendar from the user's list (does not delete it) |
Access Control (Sharing)
| Tool | Description |
|---|---|
gcal_list_acl |
List sharing permissions on a calendar |
gcal_add_acl |
Share a calendar with a user, group, or domain |
gcal_update_acl |
Change the sharing role for an existing rule |
gcal_remove_acl |
Revoke a sharing rule |
Utilities
| Tool | Description |
|---|---|
gcal_list_settings |
List user calendar settings (timezone, locale, format preferences) |
gcal_get_colors |
Get color definitions for calendars and events |
gcal_freebusy |
Query free/busy information for calendars and groups |
Output Formats
All read and list tools support an outputFormat parameter:
| Format | Description | Use Case |
|---|---|---|
json |
Pretty-printed JSON (default) | Machine consumption, API pipelines |
yaml |
YAML serialization | Human-readable structured data |
text |
Compact aligned tables and key-value pairs | Quick scanning, token-efficient LLM context |
Prerequisites
- Node.js 18+
- A Google Cloud project with the Google Calendar API enabled
- OAuth2 desktop application credentials
Setup
- Create or use an existing project in the Google Cloud Console and enable the Google Calendar API
- Create OAuth2 credentials (Application type: Desktop app) and download the JSON file
- Save the credentials file:
mkdir -p ~/.config/mcp-google-gcal
cp ~/Downloads/client_secret_*.json ~/.config/mcp-google-gcal/credentials.json
- Run the one-time authorization flow:
npx mcp-google-gcal --auth primary
This prints a URL for Google consent. After granting access, paste the authorization code back into the terminal.
Multi-Account Setup
Add additional accounts with unique labels:
npx mcp-google-gcal --auth work
npx mcp-google-gcal --auth personal
Pass the account parameter to any tool to specify which account to use.
MCP Client Configuration
Claude Code
claude mcp add -s user google-gcal -- npx -y mcp-google-gcal
VS Code / Cursor
{
"mcpServers": {
"google-gcal": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-google-gcal"]
}
}
}
Gemini CLI
{
"mcpServers": {
"google-gcal": {
"command": "npx",
"args": ["-y", "mcp-google-gcal"]
}
}
}
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.