github python-caldav/caldav v1.5.0

latest releases: v2.0.1, v2.0.0, 2.0.0.dev0...
3 months ago

[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

Don't miss a new caldav release

NewReleases is sending notifications on new releases.