Google Calendar Lib
FreeNot checkedA Google Calendar MCP server that enables listing, creating, updating, and deleting calendar events and calendars through natural language.
About
A Google Calendar MCP server that enables listing, creating, updating, and deleting calendar events and calendars through natural language.
README
A Google Calendar MCP server written in TypeScript. Can be run as a stdio MCP server or used directly as a library with imported functions.
Tools
All tools are prefixed with googleCalendar:
| Tool | Description |
|---|---|
googleCalendarListCalendars |
List all calendars accessible by the authenticated user |
googleCalendarListEvents |
List events from a calendar, with optional filters |
googleCalendarGetEvent |
Get a specific event by ID |
googleCalendarCreateEvent |
Create a new event |
googleCalendarUpdateEvent |
Update an existing event |
googleCalendarDeleteEvent |
Delete an event |
Authentication
Every tool accepts optional auth parameters. If not provided, the server falls back to environment variables.
| Parameter | Environment variable |
|---|---|
accessToken |
GOOGLE_ACCESS_TOKEN |
refreshToken |
GOOGLE_REFRESH_TOKEN |
clientId |
GOOGLE_CLIENT_ID |
clientSecret |
GOOGLE_CLIENT_SECRET |
Only accessToken is required. clientId and clientSecret are needed only if you want the client to auto-refresh expired tokens using the refreshToken.
To obtain credentials, create an OAuth 2.0 client in the Google Cloud Console with the https://www.googleapis.com/auth/calendar scope.
Usage
As an MCP stdio server
Build and run:
npm install
npm run build
node dist/index.js
Or during development:
npm run dev
Claude Desktop configuration
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"google-calendar": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"],
"env": {
"GOOGLE_ACCESS_TOKEN": "ya29.xxx",
"GOOGLE_REFRESH_TOKEN": "1//xxx",
"GOOGLE_CLIENT_ID": "xxx.apps.googleusercontent.com",
"GOOGLE_CLIENT_SECRET": "xxx"
}
}
}
}
As a library
Import and call functions directly, passing credentials per-call:
import {
googleCalendarListEvents,
googleCalendarCreateEvent,
googleCalendarDeleteEvent,
} from "./dist/api.js";
// List upcoming events
const events = await googleCalendarListEvents({
accessToken: "ya29.xxx",
calendarId: "primary",
timeMin: new Date().toISOString(),
maxResults: 10,
});
// Create an event
const event = await googleCalendarCreateEvent({
accessToken: "ya29.xxx",
summary: "Team standup",
start: { dateTime: "2026-03-10T09:00:00-08:00", timeZone: "America/Los_Angeles" },
end: { dateTime: "2026-03-10T09:30:00-08:00", timeZone: "America/Los_Angeles" },
attendees: [{ email: "[email protected]" }],
sendUpdates: "all",
});
// Delete it
await googleCalendarDeleteEvent({
accessToken: "ya29.xxx",
eventId: event.id,
});
Or rely on environment variables and omit auth params entirely:
export GOOGLE_ACCESS_TOKEN=ya29.xxx
const calendars = await googleCalendarListCalendars({});
Development
npm install # install dependencies
npm run build # compile TypeScript → dist/
npm run dev # run stdio server with tsx (no build step)
Project structure
src/
auth.ts — credential resolution and OAuth2Client factory
calendar.ts — Google Calendar API v3 wrappers
tools.ts — callable functions + Zod input schemas
server.ts — MCP server with all tools registered
api.ts — library entry point (re-exports everything)
index.ts — stdio entry point (bin)
Install Google Calendar Lib in Claude Desktop, Claude Code & Cursor
unyly install google-calendar-mcp-libInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add google-calendar-mcp-lib -- npx -y google-calendar-mcp-libFAQ
Is Google Calendar Lib MCP free?
Yes, Google Calendar Lib MCP is free — one-click install via Unyly at no cost.
Does Google Calendar Lib need an API key?
No, Google Calendar Lib runs without API keys or environment variables.
Is Google Calendar Lib hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install Google Calendar Lib in Claude Desktop, Claude Code or Cursor?
Open Google Calendar Lib on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Notion
Read and write pages in your workspace
by NotionLinear
Issues, cycles, triage — from Claude
by LinearGoogle Drive
Search and read your Drive files
by Googlemindsdb/mindsdb
Connect and unify data across various platforms and databases with [MindsDB as a single MCP server](https://docs.mindsdb.com/mcp/overview).
by mindsdbCompare Google Calendar Lib with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All productivity MCPs
