READMEmain
We couldn't render this README. Read it on GitHub
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.jsonand 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: ["colleague1@example.com", "colleague2@example.com"]
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.jsonis correctly formatted and placed in the project root. - Port conflicts: The authentication server tries ports 3000-3004; ensure at least one is available.