Labsco
MCP SERVER

MCP Google Calendar Integration

by PranayChowdhury00

Read your Google Calendar events for a given date from inside your editor.

Calendars, Meetings & Scheduling
Summary
API-key auth is the constraint that decides whether this fits.

It reads a calendar with a key rather than an OAuth flow, which makes setup short and means the calendar must be shared or public. For a team calendar, a room schedule or a published events feed that is exactly right. For your own private calendar it will not work, and the README says OAuth is future work rather than a flag you can turn on. Recurring events and descriptions are also listed as not yet handled.

What it is

A small MCP server that connects to the Google Calendar API and returns the events on a date you name. It is built for the editor case — asking what today looks like without leaving Cursor — and validates its input with zod so a malformed date fails cleanly rather than silently.

What you get
  • The calendar events for a specific date, read live from Google Calendar
  • Schema validation on the input via zod, so a bad date is rejected rather than turned into an empty result
  • Credentials kept in environment variables rather than in the source, with a documented `.mcp` config block for wiring it into a client
  • A deliberately small surface — one calendar, read-only, no event creation
Requirements

A Google Calendar API key in `GOOGLE_API_KEY` and the calendar's ID or email in `CALENDAR_ID`, with the Google Calendar API enabled in your Google Cloud Console. Because it authenticates with an API key rather than OAuth, the calendar has to be public or shared appropriately — a private personal calendar will not be readable this way. There is no published package: clone, `npm install`, create the `.env`, and point your client at `server.js`. The README lists OAuth2 for multiple users, recurring events and event descriptions as future work, so treat those as absent today.

Setup effort

Build from source — clone the repository and build it, then point your client at the binary