Skip to main content

agents-calendar

Version 0.1.0 MCP Python 3.10+ PyPI License

CalDAV feeler for agents (CLI + MCP).
Stdlib HTTP. The server expands recurrence. Passwords stay on the host.

Quickstart

pip install agents-calendar && agents-calendar sync --init

Merges MCP into host configs. Prints where credentials go. Does not write secrets into mcp.json. init is the same command.

Source checkouts can also be installed and managed with vand.


What it does

List calendars, list events in a time range, add, update, delete. Recurrence rules stay on the CalDAV server (time-range report). Writes send If-None-Match: * on create and If-Match on update and delete, so a stale etag does not clobber.

The password is never printed, logged, or returned by a tool.


Credentials

Highest priority first:

  1. Process env: CALDAV_URL, CALDAV_USERNAME, CALDAV_PASSWORD, optional CALDAV_CALENDAR
  2. ~/.agents/calendar.json (mode 0600)
  3. ~/.agents/.env keys CALDAV_*
{
  "url": "https://example.com/dav/calendars/user/calendar/",
  "username": "user",
  "password": "app-password",
  "calendar": "Work"
}

calendar (or CALDAV_CALENDAR) is optional: the collection, by display name or URL, that add writes to. list searches every collection unless --calendar names one. Both commands and the MCP tools accept calendar per call.

CLI and MCP both read this file, so a desktop host does not need the password in its MCP config. A URL that is only a host or principal is resolved through calendar-home-set. add writes into a VEVENT collection, not a reminder collection.


Where it runs

Floor: any MCP client or a terminal. python -m agents_calendar serve is enough. No skills are installed.

Layer What you get Who
CLI + MCP The five tools below, or the same verbs on the CLI Any MCP host / any shell
Autowire sync --init merges agents-calendar when the host config directory already exists, and ensures ~/.cursor/mcp.json Cursor, Claude Desktop, Zed (context_servers), Antigravity / Gemini, Windsurf, Codex, Roo, Cline

MCP without autowire: point the host at python -m agents_calendar serve.


MCP tools

Primary surface. They mirror the CLI. Password never appears in the JSON.

Tool What it does
calendar_calendars Collections under the configured URL
calendar_list VEVENTs between ISO start and end. Server expands recurrence
calendar_add Create. If-None-Match so an existing UID is not overwritten
calendar_update Replace. href and etag come from calendar_list
calendar_delete Delete. Same href + etag pair

Five tools.


CLI

Machine-readable catalog: python -m agents_calendar --help-json (do not scrape --help).

Command Purpose
agents-calendar sync --init Merge MCP. Alias: agents-calendar init
agents-calendar calendars List collections
agents-calendar list --from <ISO> --to <ISO> Events in that range
agents-calendar add --summary "…" --dtstart <ISO> --dtend <ISO> Create. Optional --location, --description
agents-calendar update --href <href> --etag <etag> … Replace fields you pass
agents-calendar delete --href <href> --etag <etag> Delete
agents-calendar serve stdio MCP. Not the default

No subcommand prints help.


ABI

Contract in abi/:


Tests

python -m unittest discover tests

License

MIT. See LICENSE.

Metadata

Release files for agents-calendar 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for agents-calendar 0.1.0
File Size Uploaded
agents_calendar-0.1.0.tar.gz 25.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for agents-calendar 0.1.0
File Interpreter ABI Platform
agents_calendar-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 45.7 kB

Release files / agents_calendar-0.1.0.tar.gz

Download URL agents_calendar-0.1.0.tar.gz
Size 25.4 kB
Tags Source
SHA-256 checksum
How to use checksums
ac2f6787a05fcb25e5fbf1ded40c73f7c4c3cd58f8bb96bb82aba2f3f2ff4238
BLAKE2b-256 checksum
How to use checksums
686ae3f778a96245bf415ed5765cbcb14dd8c9594bebfd5757c2a7dbec54c84f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / agents_calendar-0.1.0-py3-none-any.whl

Download URL agents_calendar-0.1.0-py3-none-any.whl
Size 20.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
22fc610e5127448ad40546632bfce4d089d6352f8b9beed08e8b6dcb2076a099
BLAKE2b-256 checksum
How to use checksums
79c4939313d75b11b4e6f36bd40e522e62494247a8a5c3a9151bff686f098aaf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.1.1

2 release files

This release

0.1.0 This release

2 release files

0.0.3

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page