Agent-Native Calendar
Agent-Native Google Calendar - manage events, sync, and public booking
Description from the maker (original English)
MCP server for Google Calendar integration with service account support and domain-wide delegation.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
GCAL_SERVICE_ACCOUNT_CLIENT_EMAIL, GCAL_SERVICE_ACCOUNT_PRIVATE_KEY, GCAL_IMPERSONATE_EMAIL, ENABLED_TOOLGROUPSValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"google-calendar": {
"command": "npx",
"args": [
"-y",
"google-calendar-workspace-mcp-server"
],
"env": {
"GCAL_SERVICE_ACCOUNT_CLIENT_EMAIL": "your-value",
"GCAL_SERVICE_ACCOUNT_PRIVATE_KEY": "your-value",
"GCAL_IMPERSONATE_EMAIL": "your-value",
"ENABLED_TOOLGROUPS": "your-value"
}
}
}
}Run this in your terminal
claude mcp add google-calendar --env GCAL_SERVICE_ACCOUNT_CLIENT_EMAIL=your-value --env GCAL_SERVICE_ACCOUNT_PRIVATE_KEY=your-value --env GCAL_IMPERSONATE_EMAIL=your-value --env ENABLED_TOOLGROUPS=your-value -- npx -y google-calendar-workspace-mcp-serverFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"google-calendar": {
"command": "npx",
"args": [
"-y",
"google-calendar-workspace-mcp-server"
],
"env": {
"GCAL_SERVICE_ACCOUNT_CLIENT_EMAIL": "your-value",
"GCAL_SERVICE_ACCOUNT_PRIVATE_KEY": "your-value",
"GCAL_IMPERSONATE_EMAIL": "your-value",
"ENABLED_TOOLGROUPS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"google-calendar": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"google-calendar-workspace-mcp-server"
],
"env": {
"GCAL_SERVICE_ACCOUNT_CLIENT_EMAIL": "your-value",
"GCAL_SERVICE_ACCOUNT_PRIVATE_KEY": "your-value",
"GCAL_IMPERSONATE_EMAIL": "your-value",
"ENABLED_TOOLGROUPS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
ENABLED_TOOLGROUPS envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified against the domain pulsemcp.com (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: GCAL_SERVICE_ACCOUNT_CLIENT_EMAIL, GCAL_SERVICE_ACCOUNT_PRIVATE_KEY, GCAL_IMPERSONATE_EMAIL
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.0.13) reached the registry 5 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Agent-Native Calendar, Excel MCP Server, MCP Server for Excel
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Agent-Native Google Calendar - manage events, sync, and public booking
Lets AI create and edit Excel files itself, including formulas, charts and PivotTables, without Excel installed.
Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
An MCP (Model Context Protocol) server for Google Calendar integration using service account authentication with domain-wide delegation. This server enables AI assistants to interact with Google Calendar to list events, create events, manage calendars, and query availability.
https://www.googleapis.com/auth/calendar
Extract the following from your downloaded JSON key file:
client_email: The service account emailprivate_key: The private key (including [PopNx MCP ตัดค่าที่หน้าตาเหมือนกุญแจออก])Set these environment variables:
export GCAL_SERVICE_ACCOUNT_CLIENT_EMAIL="your-service-account@your-project.iam.gserviceaccount.com"
export GCAL_SERVICE_ACCOUNT_PRIVATE_KEY="[PopNx MCP ตัดค่าที่หน้าตาเหมือนกุญแจออก]" export GCAL_IMPERSONATE_EMAIL="user@yourdomain.com"
Note: GCAL_IMPERSONATE_EMAIL should be the email address of the user whose calendar you want to access.
npx google-calendar-workspace-mcp-server
npm install -g google-calendar-workspace-mcp-server
google-calendar-workspace-mcp-server
Add this configuration to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": { "google-calendar": { "command": "npx", "args": ["google-calendar-workspace-mcp-server"], "env": { "GCAL_SERVICE_ACCOUNT_CLIENT_EMAIL": "your-service-account@your-project.iam.gserviceaccount.com", "GCAL_SERVICE_ACCOUNT_PRIVATE_KEY": "[PopNx MCP ตัดค่าที่หน้าตาเหมือนกุญแจออก]", "GCAL_IMPERSONATE_EMAIL": "user@yourdomain.com" } } } }
By default, all tools are enabled (read + write access). You can restrict the server to read-only operations by setting the ENABLED_TOOLGROUPS environment variable:
{
"mcpServers": { "google-calendar": { "command": "npx", "args": ["google-calendar-workspace-mcp-server"], "env": { "GCAL_SERVICE_ACCOUNT_CLIENT_EMAIL": "...", "GCAL_SERVICE_ACCOUNT_PRIVATE_KEY": "...", "GCAL_IMPERSONATE_EMAIL": "...", "ENABLED_TOOLGROUPS": "readonly" } } } }
Available tool groups:
| Group | Tools Included |
|---|---|
readwrite | All 7 tools (read + write) - included by default |
readonly | Read-only tools: list_calendar_events, get_calendar_event, list_calendars, query_calendar_freebusy |
When using only readonly, the write tools (create_calendar_event, update_calendar_event, delete_calendar_event) are not available.
Lists events from a calendar within an optional time range.
Parameters:
calendar_id (optional): Calendar ID (default: "primary")time_min (optional): Start time in RFC3339 formattime_max (optional): End time in RFC3339 formatmax_results (optional): Maximum events to return (default: 10, max: 250)query (optional): Free text search querysingle_events (optional): Expand recurring events (default: true)order_by (optional): "startTime" or "updated"Example:
List my events for the next week
Retrieves detailed information about a specific event.
Parameters:
event_id (required): The event IDcalendar_id (optional): Calendar ID (default: "primary")Example:
Get details for event ID abc123
Creates a new calendar event.
Parameters:
summary (required): Event titlestart_datetime OR start_date (required): Event start timeend_datetime OR end_date (required): Event end timedescription (optional): Event descriptionlocation (optional): Event locationattendees (optional): Array of email addressescalendar_id (optional): Calendar ID (default: "primary")Example:
Create a meeting tomorrow at 2pm for 1 hour titled "Team Sync"
Updates an existing calendar event. Uses PATCH semantics - only the fields you provide will be updated; other fields remain unchanged.
Parameters:
event_id (required): The event ID to updatecalendar_id (optional): Calendar ID (default: "primary")summary (optional): New event titledescription (optional): New event descriptionlocation (optional): New event locationstart_datetime OR start_date (optional): New start timeend_datetime OR end_date (optional): New end timeattendees (optional): Updated array of attendee email addressessend_updates (optional): "all", "externalOnly", or "none" - whether to send update notificationsExample:
Update event abc123 to change the title to "Team Standup"
Deletes a calendar event.
Parameters:
event_id (required): The event ID to deletecalendar_id (optional): Calendar ID (default: "primary")send_updates (optional): "all", "externalOnly", or "none" - whether to send cancellation notificationsExample:
Delete event abc123
Lists all calendars available to the authenticated user.
Parameters:
max_results (optional): Maximum calendars to return (default: 50, max: 250)Example:
Show all my calendars
Queries availability information for calendars.
Parameters:
time_min (required): Start time in RFC3339 formattime_max (required): End time in RFC3339 formatcalendar_ids (required): Array of calendar IDs to checktimezone (optional): Time zone for the queryExample:
Check if I'm free tomorrow between 2pm and 4pm
# Install dependencies
npm run install-all
npm run build
npm run dev
npm test
npm run test:integration
npm run test:all
https://www.googleapis.com/auth/calendar) is granted in Google Workspace Admin Consolelist_calendars to discover available calendar IDsMIT
See CONTRIBUTING.md for guidelines.