Skip to content

Releases: python-caldav/caldav

v2.0.1 reverts from niquests back to requests

24 Jun 06:33
v2.0.1
8811410
Compare
Choose a tag to compare

Version 2.0.0

23 Jun 06:53
v2.0.0
Compare
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
Compare
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
Compare
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
Compare
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
Compare
Choose a tag to compare

Refer to the CHANGELOG.md for a full list

v1.2.1

07 Mar 19:55
v1.2.1
Compare
Choose a tag to compare

Bugfix for wrong passwords

Thanks to @bvanjeelharia for reporting and investigating (actually the traceback was reported already by @robinmayol in #270 but we failed to connect the dots).

Version 1.2.0

26 Feb 15:00
v1.2.0
Compare
Choose a tag to compare

What's Changed from 1.1 to 1.2

Not much, but one bugfix, again the caldav library was not working for everyone despite lots of functional testing ...

Full Changelog: v1.1.3...v1.2.0

Cleaned out some python2-specific stuff

Pull request by @danigm in #228

Python2 has not been tested for quite some time, hence it has probably been broken since one of the 0.x-releases. I decided to officially drop support for python2 in version 1.0 - but since the release was overdue I procrastinated merging this pull request. To avoid breaking changes in v1.x, I threw in an assert instead.

New feature - custom http headers

Pull request by @JasonSanDiego in #288 (with style fixup in #291 ) allows headers parameter to the DAVClient constructor.

Rationale given in #285 :

I'm using Nextcloud and want to retrieve calendar (read only) subscriptions along with the normal read/write calendars. Nextcloud supports two ways of doing this. The easier of the two is to pass the custom HTTP header: X-NC-CalDAV-Webcal-Caching: On

Bugfix - basic auth broken for some servers

A bug was introduced in version 1.0, via #260 - the code would only work if there was a space in the WWW-Authenticate header. This works for most servers as they will challenge for credentials using a header like WWW-Authenticate: Basic realm="My CalDAV server" - however, WWW-Authenticate: Basic is fully allowed by RFC2617.

Thanks to @jdrozdnovak for debugging and reporting.

#289 - #290

v1.1.3

26 Feb 14:22
v1.1.3
Compare
Choose a tag to compare

Full Changelog: v1.1.2...v1.1.3

v1.1.0.dev0 - continued development

15 Feb 09:59
v1.1.0.dev0
Compare
Choose a tag to compare
Pre-release

What's Changed

Bugfixes, workarounds and annoyances

Documentation

New features

Work on the test suite

Lots of work, by @tobixen in #264

Full Changelog: v1.0.1...v1.1.0.dev0