Icalendar 7.3.0 released

The icalendar team is pleased to announce that icalendar 7.3.0 has been released.

Highlighted changes

For the complete change log, visit:

Removals and deprecations

  • vBinary.obj is deprecated in favor of vBinary.bytes. It is retained as a lossy string view of the value for backward compatibility, and will be removed in icalendar 8.

New features

  • Added Alarm.new_display(), Alarm.new_audio(), and Alarm.new_email() factory methods for creating RFC 5545 Section 3.6.6 VALARM components.
  • Added vBinary.bytes, exposing the raw binary value of a BINARY property.
  • Added the ICalParsingError exception as a public API for programmatic handling of iCalendar parsing failures.
  • Created a script to automatically generate the windows_to_olson module from the Unicode Consortium's CLDR GitHub repository.
  • Added vBinary.base64data, a getter/setter for the Base64 string view of a BINARY property's value, so callers no longer need to call base64.b64encode() or base64.b64decode() manually.
  • Added Alarm.ACTION and AlarmTime.action access to the RFC 5545 Section 3.8.6.1 ACTION property.
  • Added REQUEST_STATUS property to Event, Todo, Journal, and FreeBusy with request_status parameter in new() constructors per RFC 5545 Section 3.8.8.3. I used AI to assist with this change.

Bug fixes

  • Values of unrecognized properties and X- properties without a VALUE parameter were altered by escaping when parsed, serialized, or converted to and from jCal, so they did not round-trip unchanged as RFC 7265 specifies. These values are now preserved verbatim.
  • Avoid folding content lines between escape prefixes and their escaped characters.
  • Added the missing BINARY member to icalendar.enums.VALUE, per RFC 5545 Section 3.2.20.

Documentation

  • Revised the security policy to use GitHub Security Advisory procedure instead of emailing the Plone security team, and clarified language.
  • Revised how to document parameters in docstrings, specifically their order of appearance and usage of type hints. Revised guidance to write docstrings only for a class, and not their init or new methods.
  • Adapted pull request requirements to better handle AI slop.
  • Documented how to join the icalendar team.

Support icalendar

This release was made possible through the community built with the support from a NGI Zero Core grant from the NLnet Foundation as part of a larger project to develop the Python Calendaring Ecosystem.

Funding development helps create a responsive community around the Python calendaring ecosystem.

As free and open source software, icalendar thrives and grows only when it receives support from you. You can help icalendar keep up-to-date with your platform and continue to use it in your applications in many ways.

Join the icalendar community

The maintainer of icalendar, Nicco Kunzmann (GitHub: @niccokunzmann), gratefully appreciates the contributions for this release. See the list of contributors.

By fostering a warm and welcoming community around free and open source software, icalendar attracts both experienced and first-time contributors to participate. See how to contribute.

Additional references

Documentation

Change log

Upgrade guide

PyPI

Issues

Discussions

Chat

Mastodon

1 Like