MCP Google Calendar Server
by nkriman
README.md
# MCP Google Calendar Server
A Model Context Protocol (MCP) server for creating Google Calendar events.
## Setup
1. **Install dependencies:**
```bash
npm install
```
2. **Get Google Calendar API credentials:**
- Go to [Google Cloud Console](https://console.cloud.google.com/)
- Create a new project or select existing one
- Enable the Google Calendar API
- Create credentials (OAuth 2.0 Client ID)
- Download the credentials and save as `credentials.json` in the project root
3. **Authenticate:**
- Run the server and use the `authenticate_google_calendar` tool to get the auth URL
- Visit the URL, grant permissions, and get the authorization code
- Create a `token.json` file with your credentials
4. **Configure Claude Code:**
Add to your MCP settings:
```json
{
"mcpServers": {
"google-calendar": {
"command": "node",
"args": ["/Users/krilet/mcp-google-calendar-server/src/index.js"]
}
}
}
```
## Usage
The server provides two tools:
### `authenticate_google_calendar`
Generates an authentication URL for Google Calendar access.
### `create_calendar_event`
Creates a new event in your Google Calendar.
**Parameters:**
- `summary` (required): Event title
- `startDateTime` (required): Start time in ISO format
- `endDateTime` (required): End time in ISO format
- `description` (optional): Event description
- `location` (optional): Event location
- `timeZone` (optional): Time zone (defaults to UTC)
- `attendees` (optional): Array of email addresses
**Example:**
```json
{
"summary": "Team Meeting",
"startDateTime": "2024-12-25T10:00:00-08:00",
"endDateTime": "2024-12-25T11:00:00-08:00",
"description": "Weekly team sync",
"location": "Conference Room A",
"attendees": ["colleague@example.com"]
}
```TDQS
A3.5/5.0
Scored across 6 tools
Disambiguation5/5
Each tool has a distinctly different purpose: two for authentication flow and four for CRUD operations on calendar events. There is no overlap or ambiguity.
Naming Consistency5/5
All tool names follow a consistent verb_noun pattern in snake_case (e.g., authenticate_google_calendar, create_calendar_event, save_auth_token). The pattern is predictable and clear.
Tool Count5/5
With 6 tools, the server is well-scoped. It includes necessary authentication tools and core CRUD operations for calendar events without unnecessary extras.
Completeness4/5
The server covers the essential CRUD cycle (create, read via list, update, delete) plus authentication. However, it lacks a dedicated tool to retrieve a single event by ID, relying on list for that purpose.
Maintenance
ActivityInactive
ResponsivenessNo issues