gcal-mcp
gcal-mcp
A Model Context Protocol (MCP) server for read-only Google Calendar integration. Provides calendar access to AI assistants through the MCP standard.
Features
get_events_today - Get all calendar events for today
get_events_week - Get all calendar events for the current week (Monday to Sunday)
get_pending_invites - Get calendar invitations requiring a response
find_available_slot - Find available time slots for scheduling meetings
Prerequisites
Node.js 18+
A Google Cloud project with Calendar API enabled
OAuth 2.0 credentials (Desktop app type)
Setup
1. Create Google Cloud OAuth Credentials
Go to the Google Cloud Console
Create a new project or select an existing one
Enable the Google Calendar API
Go to APIs & Services > Credentials
Click Create Credentials > OAuth client ID
Select Desktop app as the application type
Download the JSON file and save it as
client_secret*.jsonin the project root
2. Install Dependencies
npm install3. Authenticate
Run the auth script to authorize access to your calendar:
npm run authThis will open a browser window for Google OAuth consent. After authorization, a token.json file will be created.
4. Build
npm run buildUsage
With Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"gcal": {
"command": "node",
"args": ["/path/to/gcal-mcp/dist/index.js"]
}
}
}Standalone
npm startDevelopment
npm run devTools Reference
get_events_today
Returns all events scheduled for the current day.
get_events_week
Returns all events for the current week (Monday through Sunday), grouped by day.
get_pending_invites
Returns calendar invitations where you haven't responded yet (needsAction status). Looks 30 days ahead.
find_available_slot
Finds available meeting slots based on your calendar.
Parameter | Type | Required | Description |
duration_minutes | number | Yes | Meeting duration (15-480 minutes) |
search_days | number | No | Days to search ahead (default: 7, max: 14) |
working_hours_start | number | No | Start hour (default: 9) |
working_hours_end | number | No | End hour (default: 17) |
Security Notes
⚠️ Never commit sensitive files:
client_secret*.json- Your OAuth client credentialstoken.json- Your access/refresh tokens
These are already in .gitignore.
License
ISC
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/eh24905-wiz/gcal-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server