#Featured Software
These are the most widely used software we maintain.
RFC 5545 parser and generator for iCalendar files. The foundation for every other package in this ecosystem.
The only actively maintained Python CalDAV client. Sync and async, scheduling, free/busy, JMAP. Tested against a dozen real servers. Used by Home Assistant.
Give it a calendar and a date range, get back every occurrence, exceptions and overrides included.
Embed any iCalendar feed as a web calendar. No account, no database, no tracking. Self-hostable.
CLI and TUI for calendars and tasks, live against a CalDAV server. No local sync, no local storage. Successor to calendar-cli.
Strip names, emails, and locations from .ics files while keeping all timing and recurrence data intact. Library, CLI, HTTP API, web UI, and Docker image.
#End User Applications
Applications for calendar users, not just developers.
Embed any iCalendar feed as a web calendar. No account, no database, no tracking. Self-hostable.
CLI and TUI for calendars and tasks, live against a CalDAV server. No local sync, no local storage. Successor to calendar-cli.
Strip names, emails, and locations from .ics files while keeping all timing and recurrence data intact. Library, CLI, HTTP API, web UI, and Docker image.
#Command Line Applications
Cross-platform command line tools for working with calendars and different protocols.
RFC 5545 parser and generator for iCalendar files. The foundation for every other package in this ecosystem.
Client-side search and filtering for iCalendar data for when the server doesn't support the query you need.
Merge multiple iCalendar feeds into one. Handles Google Calendar's timezone quirks, deduplicates events. Running in production at MergeCal.org and MyHebrewDates.com.
Fixes the non-standard X-WR-TIMEZONE property that Google Calendar exports, so iCalendar files work correctly in strict parsers.
Query iCalendar files by time range and component type from the command line. Outputs valid iCalendar files. Available via Homebrew, Windows, or Python package managers.
Converts between iCalendar (RFC 5545) and jCal (RFC 7265, JSON) formats. Available as a Python library and CLI.
CLI and TUI for calendars and tasks, live against a CalDAV server. No local sync, no local storage. Successor to calendar-cli.
The original CalDAV CLI. Still works, still maintained. New users should start with plann.
Point it at a CalDAV server and get a full report of what it actually supports, not just what the documentation claims.
#Web Apps and Clients
Web applications and web based services.
JMAP calendar support as a standalone package, including scheduling, free/busy, attachments, and push notifications. Currently part of python-caldav, being extracted here.
One API for CalDAV, JMAP, and plain iCalendar feeds. Point it at a URL, and it figures out the rest.
Embed any iCalendar feed as a web calendar. No account, no database, no tracking. Self-hostable.
Point it at a CalDAV server and get a full report of what it actually supports, not just what the documentation claims.
Strip names, emails, and locations from .ics files while keeping all timing and recurrence data intact. Library, CLI, HTTP API, web UI, and Docker image.
#Libraries
Python libraries for your applications.
RFC 5545 parser and generator for iCalendar files. The foundation for every other package in this ecosystem.
The only actively maintained Python CalDAV client. Sync and async, scheduling, free/busy, JMAP. Tested against a dozen real servers. Used by Home Assistant.
Give it a calendar and a date range, get back every occurrence, exceptions and overrides included.
Client-side search and filtering for iCalendar data for when the server doesn't support the query you need.
Merge multiple iCalendar feeds into one. Handles Google Calendar's timezone quirks, deduplicates events. Running in production at MergeCal.org and MyHebrewDates.com.
Fixes the non-standard X-WR-TIMEZONE property that Google Calendar exports, so iCalendar files work correctly in strict parsers.
One API for CalDAV, JMAP, and plain iCalendar feeds. Point it at a URL, and it figures out the rest.
Django models for iCalendar data, including events, recurrences, attendees, and admin integration out of the box.