Listing, creating, updating and deleting is table stakes; free-slot search is not, and it is what turns "when can we meet" from a manual scan into one call. Because delete and update are both present, this is a server that can change your real calendar — worth pointing at the account you intend before the first write.
A Python MCP server built on fastmcp that connects to Google Calendar over OAuth2 and exposes the full event lifecycle over stdio.
- `list_month_events` — every event in a given year and month
- `list_day_events` — every event on a given date
- `get_event_detail` — the full record for one event id
- `create_event` — a new event, with attendees added by email address
- `update_event` — change title, time and other fields on an existing event
- `delete_event` — remove an event by id
- `find_free_slots` — gaps of at least N minutes on a date, which is the one that makes scheduling from chat practical
Python 3.13 or newer (the author recommends 3.13.3) and uv — `uv sync` installs everything, with no separate virtualenv step. Authentication is Google OAuth2. The client runs `uv --directory <path> run google_calendar_mcp`.
One command plus a key — uvx google_calendar_mcp, then supply credentials
