Manage calendars, events, and todos on any CalDAV server.
Ask Stavrobot:
Install the plugin at https://github.com/stavrobot/plugin-caldav.git
Then configure it with your CalDAV server credentials:
https://caldav.example.com)Europe/Athens) used for datetimes passed without an offset. Defaults to UTC.Event and todo times are stored with an explicit timezone whenever possible:
2026-09-28T21:00:00+03:00) is converted to the target zone, preserving the instant.2026-09-28T21:00:00) is interpreted as wall-clock time in the target zone: the tool's timezone parameter if given, otherwise default_timezone, otherwise UTC.2026-09-28) is an all-day event or due date.Events and todos read back are reported with an ISO 8601 offset (zoned, UTC, or legacy fixed-offset times), as a bare time when floating, or as a date when all-day, together with a timezone field describing the zone.
Tests use iCal text fixtures and never contact a CalDAV server. Run them with:
uv run --with pytest --with caldav --with icalendar --with tzdata pytest
| Tool | Description |
|---|---|
list_calendars | List all calendars on the server |
create_calendar | Create a new calendar |
delete_calendar | Delete a calendar by name |
| Tool | Description |
|---|---|
list_events | List events in a calendar, optionally filtered by date range |
get_event | Get a single event by UID |
create_event | Create an event |
update_event | Update an existing event's fields |
delete_event | Delete an event by UID |
| Tool | Description |
|---|---|
list_todos | List todos in a calendar, optionally filtered by status |
create_todo | Create a todo |
update_todo | Update an existing todo's fields |
complete_todo | Mark a todo as completed |
delete_todo | Delete a todo by UID |
AGPL-3.0. See LICENSE.