cal-scheduler
Timezone-correct CalDAV scheduling MCP server with validated recurrence and single-occurrence edits.
Connector by limey · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/limey-cal-scheduler-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 26, 2026.
- Tools
- 2 read · 6 write · 3 delete
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Tools by what they do 11
Read from the source code; the running server may list different tools.
Read 2 · Look things up without changing anything.
list_calendarslist_events
Write 6 · Create, change, send or run things.
create_calendarcreate_eventmark_donemove_occurrenceresolve_datetimeupdate_event
Delete 3 · Delete, drop, revoke or wipe things.
delete_calendardelete_eventexclude_occurrence
Network hosts it talks to 2
github.com· found in codeglama.ai· found in code
Files it touches
- Any path the agent passes to its tools
Tools (11)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
create_calendarCreate a new calendar with the given display name. Returns `{"ok": True, "created": name}`. The name must be unique; a duplicate name raises an error.
create_eventCreate an event (single, or recurring if `rrule` is given). `start`/`end` are ISO 8601 (see parameter docs for zone + default-duration details — read those before writing). `rrule` is a raw RRULE body, e.g. "FREQ=WEEKLY;COUNT=12". `calendar` is required in practice — there is no default calendar. Pick deliberately; events are not validated against calendar type.
delete_calendarDelete a calendar and all of its events. Irreversible. Returns `{"ok": True, "deleted": name}`.
delete_eventDelete a whole event/series (and any of its overrides). Irreversible.
exclude_occurrenceDrop a single occurrence of a recurring series (EXDATE). `occurrence` is the instance's current start exactly as returned by `list_events`, including the UTC offset (e.g. `2026-06-18T09:00:00+12:00`). Bare local times may not match. The response includes `series_remaining` (occurrences left in the series) and `overrides` (RECURRENCE-ID overrides on the series) so the rest-of-series-unchanged claim is observable.
list_calendarsList the calendars available on the account. Returns `{"calendars": [name, ...]}` with account calendar names sorted alphabetically.
list_eventsList event occurrences in [start, end], expanding recurring series. Dates are interpreted in the calendar's configured zone. Returns one entry per occurrence (recurring instances are expanded), sorted by start.
mark_doneMark an event (or one occurrence of a series) done at the current UTC moment. `occurrence=None` marks the whole event / series; otherwise marks only that occurrence (via a RECURRENCE-ID override). Idempotent: re-marking replaces the prior timestamp. The response includes `series_remaining` and `overrides` for parity with move_occurrence / exclude_occurrence.
move_occurrenceReschedule a single occurrence of a series (RECURRENCE-ID override). `occurrence` is the instance's current start exactly as returned by `list_events`, including the UTC offset (e.g. `2026-06-18T09:00:00+12:00`). Bare local times may not match. `new_start`/`new_end` are where it moves to. Omit `new_end` to keep the occurrence's existing duration. The rest of the series is unchanged. The response includes `series_remaining` (occurrences left in the series) and `overrides` (RECURRENCE-ID overrides on the series) so the rest-of-series-unchanged claim is observable.
resolve_datetimeShow how a datetime string will be interpreted, without writing anything. Use this to confirm a zone before committing an event.
update_eventEdit a whole event/series. Only the fields you pass change. Preserves the UID and any single-occurrence exclusions/overrides. If you move `start` without giving `end`, the duration is kept. Moving `start` re-anchors the whole series — occurrences before the new start stop being generated (this retimes an entire series; it does not split one at a date).
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Weekly downloads
- 51
- Last commit
- Oct 20, 2026 (9 days ago)
- Last release
- Aug 16, 2026 (2 months ago)
- Last package publish
- Aug 16, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.limey/cal-scheduler-mcp- Version
- 1.1.3
- Auth
- No auth
- Packages
- pypi cal-scheduler-mcp
- License
- MIT
- Repository
- github.com/limey/cal-scheduler-mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Cite this page
cal-scheduler MCP server. Agent Mart. https://agentmart.dev/connectors/limey-cal-scheduler-mcp (last updated 2026-10-24)