github python-caldav/caldav v3.0.0a2
v3.0.0a2 -- Alpha Release

pre-release16 hours ago

AI-generated release notes — see CHANGELOG.md for the full entry.


Mostly bugfixes and server compatibility improvements since 3.0.0a1, plus a few new features.

This is an alpha release for testing purposes. Please report issues at https://github.com/python-caldav/caldav/issues

New features

  • Retry-After / rate-limit handling (RFC 6585 / RFC 9110) -- new rate_limit_handle, rate_limit_default_sleep, rate_limit_max_sleep parameters on DAVClient and AsyncDAVClient; new RateLimitError exception with retry_after / retry_after_seconds attributes (PR #628, thanks temsocial)
  • Lazy imports (PEP 562) -- import caldav is now significantly faster; heavy dependencies deferred until first use
  • search.is-not-defined.category and search.is-not-defined.dtend client-side workaround sub-features
  • Base+override feature profiles in YAML config (base: nextcloud)
  • Feature name validation in caldav.config
  • Fallback to principal URL when calendar-home-set property is missing
  • CalendarObjectResource.load() fallback to UID lookup when servers change object URLs after save

Breaking changes

  • caldav/objects.py re-export shim removed — update from caldav.objects import X to from caldav import X
  • caldav.config.read_config() now raises ValueError on YAML/JSON parse errors instead of silently returning {}
  • icalendar-searcher >= 1.0.5 now required (fixes is-not-defined filter for CATEGORIES with icalendar >= 6.x, and for DTEND on recurring all-day events)

Bug fixes

  • Fixed ssl_verify_cert not passed through in get_sync_client / get_async_client
  • Fixed _derive_from_subfeatures partial-config derivation bug
  • Fixed feature name parsing when names include a compatibility_hints. prefix
  • Fixed recursive _search_with_comptypes fallback when search.comp-type is broken
  • Fixed pending todo search on servers with broken comp-type filtering
  • Fixed URL path quoting when extracting calendars from PROPFIND results
  • Fixed create-calendar feature incorrectly derived as unsupported
  • Fixed get_object_by_uid() routing through search() for server-specific retry logic
  • Graceful handling of invalid recurrence data from some servers

Compatibility hints updated

CCS (Apple CalendarServer), Zimbra, Cyrus, Bedework, PurelyMail, GMX, ecloud, Posteo, SOGo, Baikal/Radicale, DAViCal, Synology, Xandikos

Don't miss a new caldav release

NewReleases is sending notifications on new releases.