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.
a. Create a Google Cloud Project:
b. Create OAuth 2.0 Credentials:
http://localhost:3000/oauth2callback
to the authorized redirect URIsRename the key file to gcp-oauth.keys.json
Run Authentication:
You can authenticate in two ways:
a. Global Authentication (Recommended):
```shell
# 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:
shell
# 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 addhttp://localhost:3000/oauth2callback
to your authorized redirect URIs
Add the following to your Claude Desktop configuration file:
json
{
"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": ["[email protected]", "[email protected]"],
"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/
)gcp-oauth.keys.json
is in either your current directory or ~/.calendar-mcp/
web
or installed
credentialsContributions 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.
Google Calendar MCP server with auto authentication support
No releases published
No packages published