Skip to content
Agentmart
Submit a tool

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

IndexedMITLocal (stdio)★ 1
Write a review

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.

We use your email only for this newsletter. Privacy

About

Timezone-correct CalDAV scheduling MCP server with validated recurrence and single-occurrence edits.

No 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_calendars
  • list_events

Write 6 · Create, change, send or run things.

  • create_calendar
  • create_event
  • mark_done
  • move_occurrence
  • resolve_datetime
  • update_event

Delete 3 · Delete, drop, revoke or wipe things.

  • delete_calendar
  • delete_event
  • exclude_occurrence

Network hosts it talks to 2

  • github.com · found in code
  • glama.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_calendar

    Create 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_event

    Create 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_calendar

    Delete a calendar and all of its events. Irreversible. Returns `{"ok": True, "deleted": name}`.

  • delete_event

    Delete a whole event/series (and any of its overrides). Irreversible.

  • exclude_occurrence

    Drop 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_calendars

    List the calendars available on the account. Returns `{"calendars": [name, ...]}` with account calendar names sorted alphabetically.

  • list_events

    List 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_done

    Mark 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_occurrence

    Reschedule 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_datetime

    Show how a datetime string will be interpreted, without writing anything. Use this to confirm a zone before committing an event.

  • update_event

    Edit 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
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)