Changelog#

We use Semantic Versioning

  • Breaking changes increase the major version number.

  • New features increase the minor version number.

  • Minor changes and bug fixes increase the patch version number.

To avoid breaking changes breaking your code, install this library fixed to a specific version.

v3.8.2#

  • Fix: Prevent additional events when replaced event with lower SEQUENCE has RRULE. See Issue 253.

v3.8.1#

  • Fix: License identifier in pyproject.toml

  • Mark as compatible with icalendar versions 6.* and 7.*. See Issue 257.

  • Test compatibility to Python 3.14.

  • Documentation:

    • Fix documentation build dependencies.

    • Build documentation with Python 3.14 and icalendar>=7.0.0.

v3.8.0#

  • Fix: Invalid events and todos that swapped start and end are now calculated with start before end. See Issue 132.

v3.7.1#

  • Fix: RECURENCE-ID is now not identical to DTSTART. See Issue 243.

v3.7.0#

  • Set SEQUENCE to highest version of any used event in a series. See Issue 223

v3.6.1#

  • Remove unused files: requirements.txt and setup.py.

  • Use version identifier for PyPI.

v3.6.0#

  • Add the RECURRENCE-ID to all the occurrences, see Issue 219

  • Document how to edit one event inside of an existing calendar.

v3.5.2#

  • Fix computation of mixed start and end times, see Issue 201

v3.5.1#

  • Move to pyproject.toml format to include directory structure more easily. See Issue 214

  • Remove release 3.5.0 as it does not contain any source files.

v3.5.0 - yanked#

  • Restructure module into package with a file structure.

  • Add pagination, see Issue 211

v3.4.1#

  • Improve Alarm documentation

v3.4.0#

  • Add VALARM support: Calculate alarm times. See Issue 186

v3.3.4#

  • Allow x-wr-timezone 1.* and 2.* for this lib to remove dependency update problems.

v3.3.3#

  • Fix: Events with DTSTART of type date have a duration of one day, see Issue 179

v3.3.2#

  • Update x-wr-timezone

v3.3.1#

  • Support RDATE with PERIOD value type where the end is a duration, see Pull Request 180

  • Support modifying all events in the future (RECURRENCE-ID with RANGE=THISANDFUTURE), see Issue 75

v3.3.0#

  • Make tests work with icalendar version 5

  • Restructure README to be tested with doctest

  • Remove DURATION from the result, see Issue 139

  • Document new way of extending the functionality, see Issue 133 and Pull Request 175

v3.2.0#

  • Allow datetime.timedelta as second argument to between(absolute_time, datetime.timedelta())

v3.1.1#

  • Fix: Remove duplication of modification with same sequence number, see Issue 164

  • Fix: EXDATE now excludes a modified instance for an event with higher SEQUENCE, see Issue

v3.1.0#

  • Add count() -> int to count all occurrences within a calendar

  • Add all() -> Generator[icalendar.Component] to iterate over the whole calendar

v3.0.0#

  • Change the architecture and add a diagram

  • Add type hints, see Issue 91

  • Rename UnfoldableCalendar to CalendarQuery

  • Rename of(skip_bad_events=None) to of(skip_bad_series=False)

  • of(components=[...]) now also takes ComponentAdapters

  • Fix edit sequence problems, see Issue 151

v2.2.3#

  • Fix: Edits of whole event are now considering RDATE and EXDATE, see Issue 148

v2.2.2#

  • Test support for icalendar==6.*

  • Remove Python 3.7 from tests and compatibility list

  • Remove pytz from requirements

v2.2.1#

  • Add support for multiple RRULE in events.

v2.2.0#

  • Add after() method to iterate over upcoming events.

v2.1.3#

  • Test and support Python 3.12.

  • Change SPDX license header.

  • Fix RRULE with negative COUNT, see Issue 128

v2.1.2#

v2.1.1#

  • Claim and test support for Python 3.11.

  • Support deleting events by setting RRULE UNTIL < DTSTART, see Issue 117.

v2.1.0#

  • Added support for PERIOD values in RDATE. See Issue 113.

  • Fixed icalendar>=5.0.9 to support RDATE of type PERIOD with a time zone.

  • Fixed pytz>=2023.3 to assure compatibility.

v2.0.2#

  • Fixed omitting last event of RRULE with UNTIL when using pytz, the event starting in winter time and ending in summer time. See Issue 107.

v2.0.1#

v2.0.0#

  • Only return VEVENT by default. Add of(... ,components=...) parameter to select which kinds of components should be returned. See Issue 101.

  • Remove beta indicator. This library works okay: Feature requests come in, not so much bug reports.

v1.1.0b#

v1.0.3b#

  • Remove syntax anomalies in README.

  • Switch to GitHub actions because GitLab decided to remove support.

v1.0.2b#

  • Add support for X-WR-TIMEZONE calendars which contain events without an explicit time zone, see Issue 86.

v1.0.1b#

  • Add support for zoneinfo.ZoneInfo time zones, see Issue 57.

  • Migrate from Travis CI to Gitlab CI.

  • Add code coverage on Gitlab.

v1.0.0b#

  • Remove Python 2 support, see Issue 64.

  • Remove support for Python 3.5 and 3.6.

  • Note: These deprecated Python versions may still work. We just do not claim they do.

  • X-WR-TIMEZONE support, see Issue 71.

v0.2.4b#

  • Events with a duration of 0 seconds are correctly returned.

  • between() and at() take the same kind of arguments. These arguments are documented.

v0.2.3b#

  • between() and at() allow arguments with time zones now when calendar events do not have time zones, reported in Issue 61 and Issue 52.

v0.2.2b#

  • Check that at() does not return an event starting at the next day, see Issue 44.

v0.2.1b#

  • Check that recurring events are removed if they are modified to leave the requested time span, see Issue 62.

v0.2.0b#

  • Add ability to keep the recurrence attributes (RRULE, RDATE, EXDATE) on the event copies instead of stripping them. See Pull Request 54.

v0.1.21b#

  • Fix issue with repetitions over DST boundary. See Issue 48.

v0.1.20b#

  • Fix handling of modified recurrences with lower sequence number than their base event Pull Request 45

v0.1.19b#

  • Benchmark using @mrx23dot’s script and speed up recurrence calculation by factor 4, see Issue 42.

v0.1.18b#

  • Handle Issue 28 so that EXDATEs match as expected.

  • Handle Issue 27 so that parsing some rrule UNTIL values does not crash.

v0.1.17b#

  • Handle Issue 28 where passed arguments lead to errors where it is expected to work.

v0.1.16b#

  • Events with an empty RRULE are handled like events without an RRULE.

  • Remove fixed dependency versions, see Issue 14

v0.1.15b#

  • Repeated events also include subcomponents. Issue 6

v0.1.14b#

  • Fix compatibility Issue 20: EXDATEs of different time zones are now supported.

v0.1.13b#

  • Remove attributes RDATE, EXDATE, RRULE from repeated events Issue 23.

  • Use vDDDTypes instead of explicit date/datetime type Pull Request 19.

  • Start Changelog