Enables AI assistants to manage Google Calendar through natural language interactions with features like creating, updating, and deleting events, searching calendars, and supporting natural language date/time inputs.
A Model Context Protocol (MCP) server for Google Calendar integration in Claude Desktop with auto authentication support. This server enables AI assistants to manage Google Calendar through natural language interactions.
To install Google Calendar Integration Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @falgom4/calendar-mcp --client claude
Create a Google Cloud Project and obtain credentials:
a. Create a Google Cloud Project:
b. Create OAuth 2.0 Credentials:
http://localhost:3000/oauth2callback
to the authorized redirect URIsgcp-oauth.keys.json
Run Authentication:
You can authenticate in two ways:
a. Global Authentication (Recommended):
# First time: Place gcp-oauth.keys.json in your home directory's .calendar-mcp folder mkdir -p ~/.calendar-mcp mv gcp-oauth.keys.json ~/.calendar-mcp/ # Run authentication from anywhere npx @nchufa/calendar auth
b. Local Authentication:
# Place gcp-oauth.keys.json in your current directory # The file will be automatically copied to global config npx @nchufa/calendar auth
The authentication process will:
gcp-oauth.keys.json
in the current directory or ~/.calendar-mcp/
~/.calendar-mcp/
~/.calendar-mcp/credentials.json
Note:
- After successful authentication, credentials are stored globally in
~/.calendar-mcp/
and can be used from any directory- Both Desktop app and Web application credentials are supported
- For Web application credentials, make sure to add
http://localhost:3000/oauth2callback
to your authorized redirect URIs
Configure in Claude Desktop:
Add the following to your Claude Desktop configuration file:
{ "mcpServers": { "calendar": { "command": "npx", "args": [ "@nchufa/calendar" ] } } }
The server provides the following tools that can be used through Claude Desktop:
create_event
)Creates a new calendar event.
{ "summary": "Team Meeting", "description": "Weekly team sync to discuss project progress", "location": "Conference Room A", "start": "2025-04-01T14:00:00", "end": "2025-04-01T15:00:00", "attendees": ["colleague@example.com", "manager@example.com"], "reminders": { "useDefault": false, "overrides": [ { "method": "email", "minutes": 30 }, { "method": "popup", "minutes": 10 } ] } }
Natural language date/time is also supported:
{ "summary": "Coffee with John", "location": "Starbucks Downtown", "start": "tomorrow at 2:30pm", "end": "tomorrow at 3:30pm" }
get_event
)Retrieves details of a specific calendar event.
{ "eventId": "abc123xyz456", "calendarId": "primary" }
update_event
)Updates an existing calendar event.
{ "eventId": "abc123xyz456", "summary": "Updated Meeting Title", "location": "New Location", "start": "2025-04-01T15:00:00", "end": "2025-04-01T16:00:00" }
delete_event
)Deletes a calendar event.
{ "eventId": "abc123xyz456", "calendarId": "primary" }
list_events
)Lists calendar events within a specified time range.
{ "calendarId": "primary", "timeMin": "2025-04-01T00:00:00", "timeMax": "2025-04-07T23:59:59", "maxResults": 10, "orderBy": "startTime" }
search_events
)Searches for events matching a query.
{ "query": "meeting", "calendarId": "primary", "timeMin": "2025-04-01T00:00:00", "maxResults": 5 }
list_calendars
)Lists all available calendars.
{}
The server supports various natural language formats for dates and times:
This makes it easy to create and update events using natural language instructions.
~/.calendar-mcp/
)OAuth Keys Not Found
gcp-oauth.keys.json
is in either your current directory or ~/.calendar-mcp/
Invalid Credentials Format
web
or installed
credentialsPort Already in Use
Contributions are welcome! Please feel free to submit a Pull Request.
MIT
Special thanks to GongRzhe and his Calendar-Autoauth-MCP-Server project which served as a foundation for this implementation.
If you encounter any issues or have questions, please file an issue on the GitHub repository.
Discover shared experiences
Shared threads will appear here, showcasing real-world applications and insights from the community. Check back soon for updates!