Google Calendar
Allow AI systems to list, create, update, and manage Google Calendar events.
Installation
Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).
google-cal-mcpclaude mcp add google-calendar -e 'GOOGLE_ACCESS_TOKEN=<your google_access_token>' -- npx -y google-cal-mcp@1.1.3
{
"mcpServers": {
"google-calendar": {
"command": "npx",
"args": [
"-y",
"google-cal-mcp@1.1.3"
],
"env": {
"GOOGLE_ACCESS_TOKEN": "<your google_access_token>"
}
}
}
}
Variables d'environnement
GOOGLE_ACCESS_TOKENobligatoire secret Google OAuth access token with Calendar scopes.
google-cal-mcpclaude mcp add google-calendar -e 'MCP_TRANSPORT=<MCP_TRANSPORT>' -e 'GOOGLE_CLIENT_ID=<GOOGLE_CLIENT_ID>' -e 'GOOGLE_CLIENT_SECRET=<your google_client_secret>' -- npx -y google-cal-mcp@1.1.3
{
"mcpServers": {
"google-calendar": {
"command": "npx",
"args": [
"-y",
"google-cal-mcp@1.1.3"
],
"env": {
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"GOOGLE_CLIENT_ID": "<GOOGLE_CLIENT_ID>",
"GOOGLE_CLIENT_SECRET": "<your google_client_secret>"
}
}
}
}
Variables d'environnement
MCP_TRANSPORTobligatoire Transport type.GOOGLE_CLIENT_IDobligatoire Google OAuth client ID.GOOGLE_CLIENT_SECRETobligatoire secret Google OAuth client secret.
Documentation
Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.
google-cal-mcp
MCP server for Google Calendar - list, create, update, and manage calendar events.
Use Cases
Schedule meetings: "Set up a 30-min sync with Sarah next week" → finds a free slot, creates the event with a Meet link, and sends the invite.
RSVP to invites: "Accept the team offsite but decline the vendor demo" → responds to pending invitations automatically.
Find availability: "When am I free this Thursday afternoon?" → queries your calendar and returns open slots.
Reschedule events: "Move my 1:1 with Alex to Friday at 2pm" → updates the event and notifies attendees.
Daily briefing: "What's on my calendar today?" → lists all events with times, locations, and attendees.
Block focus time: "Block 2 hours tomorrow morning for deep work" → creates a calendar event to protect your time.
(These are just examples - any workflow that needs calendar access can use this.)
Setup
1. Create Google OAuth credentials
- Go to Google Cloud Console
- Create a new project (or use existing)
- Enable the Google Calendar API
- Go to APIs & Services → OAuth consent screen, set up consent screen
- Go to APIs & Services → Credentials → Create Credentials → OAuth client ID
- Choose Web application
- Add
http://localhost:3000/callbackto Authorized redirect URIs - Note your Client ID and Client Secret
2. Run the server
GOOGLE_CLIENT_ID='your-client-id' \
GOOGLE_CLIENT_SECRET='your-client-secret' \
MCP_TRANSPORT=http \
npm start
The server runs on http://localhost:3000 by default. Change with PORT=3001.
3. Add to your MCP client
With the server running, follow the instructions on install-mcp, which generates the right config for your MCP client (Claude Code, Claude Desktop, Cursor, Cline, VS Code, and more).
Architecture
This server acts as an OAuth proxy to Google:
graph LR
A[MCP client] <--> B[google-cal-mcp] <--> C[Google OAuth/API]
- Server advertises itself as an OAuth authorization server via
/.well-known/oauth-authorization-server /registerreturns the Google OAuth client credentials/authorizeredirects to Google, encoding the client's callback URL in state/callbackreceives the code from Google and forwards to the client's callback/tokenproxies token requests to Google, injecting client credentials/mcphandles MCP requests, using the bearer token to call Calendar API
The server holds no tokens or state - it just proxies OAuth to Google.
Tools
| Tool | Description |
|---|---|
| Calendars | |
calendars_list | List all calendars the user has access to |
calendarlist_insert | Subscribe to a shared calendar |
calendarlist_update | Update calendar settings (color, visibility, reminders) |
calendarlist_delete | Unsubscribe from a calendar |
| Events | |
events_list | List events in a time range with search/filter |
event_get | Get details of a specific event |
event_create | Create a new event with attendees and Meet link |
event_update | Update an existing event |
event_delete | Delete an event |
event_respond | RSVP to an invitation (accept/decline/tentative) |
event_move | Move event to a different calendar |
event_instances | Get instances of a recurring event |
| Availability | |
freebusy_query | Find free/busy times for scheduling |
| Sharing | |
acl_list | List who has access to a calendar |
| Colors | |
colors_get | Get available color palette for calendars/events |
Calendar API Scopes
calendar- Full access to calendarscalendar.events- Read/write events
Contributing
Pull requests are welcomed on GitHub! To get started:
- Install Git and Node.js
- Clone the repository
- Install dependencies with
npm install - Run
npm run testto run tests - Build with
npm run build
Releases
Versions follow the semantic versioning spec.
To release:
- Use
npm version <major | minor | patch>to bump the version - Run
git push --follow-tagsto push with tags - Wait for GitHub Actions to publish to the NPM registry.
Questions fréquentes
Qu'est-ce que Google Calendar ?
Allow AI systems to list, create, update, and manage Google Calendar events.
Comment installer Google Calendar ?
Il s'exécute sur votre machine. Dans Claude Code : claude mcp add google-calendar -e 'GOOGLE_ACCESS_TOKEN=<your google_access_token>' -- npx -y google-cal-mcp@1.1.3. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.
Faut-il une clé API pour Google Calendar ?
Oui. Il attend GOOGLE_ACCESS_TOKEN, MCP_TRANSPORT, GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, à renseigner dans sa configuration.
Google Calendar est-il open source ?
Son code est public sur GitHub, mais le dépôt ne déclare pas de licence standard.
Qui maintient Google Calendar ?
Il est publié par domdomegg. AI.tn le référence sans le maintenir ni le recommander.
Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.