Because you can name the target calendar on creation, a Google Calendar synced into iCloud is writable through the same path — no second integration. The permission step is the one that catches people: start the client from the terminal once, or macOS never asks and nothing works.
A server over the macOS Calendar app, so events can be created, read and changed in conversation.
- Event creation with a custom calendar, location, notes, reminders and recurrence
- Schedule queries — what is on next week, and where the free slots are for a meeting of a given length
- Updates to an existing event: time and date, which calendar it lives in, location, notes, reminder timing and the recurrence pattern
- A list of your available calendars
- Google Calendar reachable too, when it is synced into iCloud — name the Google calendar when creating the event
macOS with the Calendar app configured, the uv package manager, and an MCP client. Clone and uv sync, then point the client at the project directory. One critical step: launch Claude from the terminal the first time, because launching from Finder never triggers the macOS calendar permission prompt. Known rough edges: unusual recurrence patterns are not always set correctly, and reminder timing on recurring all-day events can be off by a day.
