Google Calendar MCP Server
by KhryptorGraphics
This MCP server integrates with Google Calendar, enabling Claude to interact with calendar events. It provides a standardized interface for viewing, creating, and managing events.
Last updated: N/A
Google Calendar MCP Server
This MCP server provides integration with Google Calendar, allowing Claude to view, create, and manage calendar events through a standardized interface.
Features
- List available calendars
- List events from a calendar
- Create new calendar events
- Update existing events
- Delete events
Prerequisites
- Node.js 16 or higher
- A Google Cloud project with the Calendar API enabled
- OAuth 2.0 credentials (Client ID and Client Secret)
Google Cloud Setup
- Go to the Google Cloud Console
- Create a new project or select an existing one
- Enable the Google Calendar API
- Create OAuth 2.0 credentials:
- Go to Credentials
- Click "Create Credentials" > "OAuth client ID"
- Choose "Desktop app" as the application type
- Give it a name (e.g., "Google Calendar MCP")
- Download the credentials JSON file
- Rename the downloaded file to
gcp-oauth.keys.json
and place it in the root directory of this project
Installation
-
Install dependencies:
npm install
-
Build the TypeScript code:
npm run build
-
Update the Claude MCP settings file to include this server:
- Add the following to
cline_mcp_settings.json
:
"github.com/pashpashpash/google-calendar-mcp": { "command": "node", "args": ["C:/Users/ralph/Documents/Cline/MCP/google-calendar-mcp/build/index.js"], "env": {}, "disabled": false, "autoApprove": [] }
- Add the following to
Authentication Process
The first time you use the Google Calendar MCP server, it will:
- Detect that you don't have authentication tokens
- Start an authentication server (on ports 3000-3004)
- Open a browser window for OAuth authentication
- Save the authentication tokens securely
- Shut down the authentication server and continue normal operation
Your authentication tokens will be stored in .gcp-saved-tokens.json
and will refresh automatically.
Available Tools
| Tool | Description |
|------|-------------|
| list-calendars
| List all available calendars |
| list-events
| List events from a specific calendar |
| create-event
| Create a new calendar event |
| update-event
| Update an existing calendar event |
| delete-event
| Delete a calendar event |
Examples
Listing Calendars
list-calendars
Listing Events
list-events
calendarId: "primary"
timeMin: "2023-01-01T00:00:00Z"
timeMax: "2023-12-31T23:59:59Z"
maxResults: 10
Creating an Event
create-event
calendarId: "primary"
summary: "Team Meeting"
location: "Conference Room B"
description: "Weekly team sync meeting"
startDateTime: "2023-06-15T10:00:00"
endDateTime: "2023-06-15T11:00:00"
timeZone: "America/New_York"
attendees: ["[email protected]", "[email protected]"]
Updating an Event
update-event
calendarId: "primary"
eventId: "event_id_from_list_events"
summary: "Updated Meeting Title"
startDateTime: "2023-06-15T11:00:00"
endDateTime: "2023-06-15T12:00:00"
Deleting an Event
delete-event
calendarId: "primary"
eventId: "event_id_from_list_events"
Troubleshooting
- OAuth token expires after 7 days: You must re-authenticate if the app is in testing mode.
- Authentication errors: Ensure
gcp-oauth.keys.json
is correctly formatted and placed in the project root. - Port conflicts: The authentication server tries ports 3000-3004; ensure at least one is available.