Skip to main content
Glama
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