Skip to content

Releases: python-caldav/caldav

v2.2.3 - multiplexing/authentication workaround

06 Dec 21:16
v2.2.3

Choose a tag to compare

Users of the ckulka/baikal:nginx docker image could not get HTTP/2 multiplexing to work together with authentication. Workarounds done to turn off multiplexing on affected systems.

v2.2 - compatibility work and misc

04 Dec 21:23
v2.2.1

Choose a tag to compare

Highlights:

  • New ways to set up client connections:
    • For cloud-based services, it should suffice to pass username, password and the name of the service, no URL needed (though, just some few providers supported so far)
    • If the username is in email format, then it's generally not needed to pass a URL.
  • v2.2 comes with lots of workarounds around lack of feature support in the servers - notably the sync-token API will work also towards servers not supporting sync-tokens. In some cases lack of server functionality is detected, but as for now it may be needed to specify what server one is user through the features configuration flag.
  • v2.2 supports more complex searches. Client-side filtering will be utilized for the things that aren't supported on the server side.

v2.2.1 comes with the requests dependency, v2.2.2 comes with niquests dependency (and v2.2.0 with a non-existing riquests dependency ... duh)

Version 2.1.2

08 Nov 14:46
v2.1.2

Choose a tag to compare

Version 2.1.0 comes without niquests in the dependency file. Version 2.1.2 come with niquests in the dependency file. Also fixed up some minor mistakes in the CHANGELOG. Version 2.1.1 was yet another mistake done during the release process and should be ignored.

See description of version 2.1.0 or CHANGELOG.md for more details.

v2.1.0

08 Nov 14:19
v2.1.0

Choose a tag to compare

I'm working on a caldav compatibility checker side project. While doing so, I'm working on redefining the "compatibility matrix". This should only affect the test code. If you maintain a file tests/conf_private.py, chances are that the latest changesets will break Since "running tests towards private CalDAV servers" is not considered to be part of the public API, I deem this to be allowed without bumping the major version number. If you are affected and can't figure out of it, reach out by email, GitHub issue or GitHub discussions. (Frankly, I'm interessted if anyone except me uses this, so feel free to reach out also if you can figure out of it).

As always, the new release comes with quite some bugfixes, compatibility fixes and workarounds improving the support for various calendar servers observed in the wild.

v2.0.1 reverts from niquests back to requests

24 Jun 06:33
v2.0.1
8811410

Choose a tag to compare

Version 2.0.0

23 Jun 06:53
v2.0.0

Choose a tag to compare

Here are the most important changes in 2.0:

  • Version 2.0 drops support for old python versions and replaces requests 2.x with niquests 3.x, a fork of requests.
  • Major overhaul of the documentation
  • Support for reading configuration from a config file or environmental variables - I didn't consider that to be within the scope of the caldav library, but why not - why should every application reinvent some configuration file format, and if an end-user have several applications based on python-caldav, why should he need to configure the caldav credentials explicitly for each of them?
  • New method davclient.principals() to search for other principals on the server - and from there it's possible to do calendar searches and probe what calendars one have access to. If the server will allow it.

v1.6.0

30 May 14:52
v1.6.0

Choose a tag to compare

This will be the last minor release before 2.0. The scheduling support has been fixed up a bit, and saving a single recurrence does what it should do, rather than messing up the whole series.

v1.5.0

24 May 17:20
v1.5.0

Choose a tag to compare

[1.5.0] - 2025-05-24

Version 1.5 comes with support for alarms (searching for alarms if the server permits and easy interface for adding alamrs when creating events), lots of workarounds and fixes ensuring compatibility with various servers, refactored some code, and done some preparations for the upcoming server compatibility hints project.

Deprecated

Python 3.7 is no longer tested (dependency problems) - but it should work. Please file a bug report if it doesn't work. (Note that the caldav library pulls in many dependencies, and not all of them supports dead snakes).

Fixed

  • Servers that return a quoted URL in their path will now be parsed correctly by @edel-macias-cubix in #473
  • Compatibility workaround: If event.load() fails, it will retry the load by doing a multiget - #460 and #475 - #459
  • Compatibility workaround: A problem with a wiki calendar fixed by @soundstorm in #469
  • Blank passwords should be acceptable - #481
  • Compatibility workaround: Accept XML content from calendar server even if it's marked up with content-type text/plain by @niccokunzmann in #465
  • Bugfix for saving component failing on multi-component recurrence objects - #467
  • Some exotic servers may return object URLs on search, but it does not work out to fetch the calendar data. Now it will log an error instead of raising an error in such cases.
  • Some workarounds and fixes for getting tests passing on all the test servers I had at hand in #492
  • Search for todo-items would ignore recurring tasks with COMPLETED recurrence instances, ref #495, fixed in #496

Changed

  • The tests/compatibility_issues.py has been moved to caldav/compatibility_hints.py, this to make it available for a caldav-server-tester-tool that I'm splitting off to a separate project/repository, and also to make #402 possible.

Refactoring

  • Minor code cleanups by github user @ArtemIsmagilov in #456
  • The very much overgrown objects.py-file has been split into three - #483
  • Refactor compatibility issues by @tobixen in #484
  • Refactoring of multiget in #492

Documentation

  • Add more project links to PyPI by @niccokunzmann in #464
  • Document how to use tox for testing by @niccokunzmann in #466
  • Readthedocs integration has been repaired (#453 - but eventually the fix was introduced directly in the master branch)

Test framework

  • Radicale tests have been broken for a while, but now it's fixed ... and github will be running those tests as well. #480 plus commits directly to the main branch.
  • Python 3.13 is officially supported by github user @ArtemIsmagilov in #454
  • Functional test framework has been refactored in #450
    • code for setting up and rigging down xandikos/radicale servers have been moved from tests/test_caldav.py to tests/conf.py. This allows for:
      • Adding code (including system calls or remote API calls) for Setting up and tearing down calendar servers in conf_private.py
      • Creating a local xandikos or radicale server in the tests.client-method, which is also used in the examples-section.
      • Allows offline testing of my upcoming check_server_compatibility-script
    • Also added the possibility to tag test servers with a name
  • Many changes done to the compatibility flag list (due to work on the server-checker project)
  • Functional tests for multiget in #489

Added

  • Methods for verifying and adding reverse relations - #336
  • Easy creation of events and tasks with alarms, search for alarms - #221
  • Work in progress: auto_conn, auto_calendar and auto_calendars may read caldav connection and calendar configuration from a config file, environmental variables or other sources. Currently I've made the minimal possible work to be able to test the caldav-server-tester script.
  • By now calendar.search(..., sort_keys=("DTSTART") will work. Sort keys expects a list or a tuple, but it's easy to send an attribute by mistake. #448 #449
  • The class_-parameter now works when sending data to save_event() etc.
  • Search method now takes parameter journal=True. ref #237 and #486

Release v1.4.0

05 Nov 13:36
v1.4.0

Choose a tag to compare

  • Lots of work lifting the project up to more modern standards and improving code, thanks to Georges Toth (github @sim0nx), Matthias Urlichs (github @smurfix) and @ArtemIsmagilov. While this shouldn't matter for existing users, it will make the library more future-proof.
  • Quite long lists of fixes, improvements and some few changes, nothing big, main focus is on ensuring compatibility with as many server implementations as possible. See the CHANGELOG.md file for details.

Pull requests included

New Contributors

Full Changelog: v1.3.9...v1.4.0

v1.3.8 - various bugfixes

10 Dec 16:22
v1.3.8

Choose a tag to compare

Refer to the CHANGELOG.md for a full list