#What this is
The Python Calendaring Ecosystem (PCE) is a collection of open source software written in Python covering the calendaring stack from top to bottom. PCE parses iCalendar files, computes recurrences, talks to CalDAV and JMAP servers, has CLI tools, and is integrated with Django. There is no corporation behind the PCE. The maintainers and contributors use parts of the PCE in real projects.
#Why it exists
Calendaring specifications are sometimes ambiguous, have omissions, and every server interprets them differently. Most Python libraries in this space don't handle recurrences according to the specifications, in ways that only show up in production, or just silently omit the hard parts.
We test against real servers, track compatibility per server, and fix what breaks.
#Standards we implement
- RFC 5545 — iCalendar
- RFC 5546 — iTIP (scheduling)
- RFC 4791 — CalDAV
- RFC 3744 — WebDAV Access Control (ACL)
- RFC 6638 — CalDAV Scheduling Extensions
- RFC 6764 — CalDAV/CardDAV Service Discovery
- RFC 7953 — Calendar Availability
- RFC 7986 — New Properties for iCalendar
- RFC 8607 — Managed Attachments
- RFC 5689 — Extended MKCOL
- RFC 8984 — JSCalendar
- draft-ietf-jmap-calendars — JMAP Calendaring (RFC Editor Queue)
- RFC 9610 — JMAP Contacts
#Funding
Work for the PCE is funded by a generous grant from NLnet via the NGI Zero program, backed by the European Commission's Next Generation Internet initiative. Grants fund milestones and don't affect licensing or ownership.
Two prior grants through NLnet NGI Zero Core funded this work: Open Web Calendar and Open Web Calendar – recurring events.
You can support the work for the Python Calendaring Ecosystem through financial contribution.
#License and governance
All packages are free and open source software. Licenses vary by package, including BSD, LGPL, GPL, AGPL, and Apache 2.0. There is no foundation, nor formal structure. See the team page. We welcome contributions.