The iCalendar package is a parser/generator of iCalendar files for use
with Python. It follows the RFC 2445 (iCalendar) specification.
Provides
Requires
License
BSD-2-Clause
Changelog
* Mon Sep 07 2026 Steve Kowalik <steven.kowalik@suse.com>
- Skip a recalcitrant test to allow the testsuite to pass.
* Tue Sep 01 2026 Dirk Müller <dmueller@suse.com>
- update to 7.3.0:
* https://github.com/collective/icalendar/blob/v7.3.0/CHANGES.rst
* Sun Jun 28 2026 Dirk Müller <dmueller@suse.com>
- update to 7.2.0:
* Created an ical_value property for the vFrequency component,
mirroring the existing pattern on vWeekday. @mvanhorn (Issue
* Created an ical_value property for the vGeo component.
* Added type hints to component methods.
* Added test coverage for icalendar.compatibility.deprecate_for_version_8().
* The Alarm.uid accessor now falls back to vendor-specific UID
properties (the existing X-ALARMUID and the newly added
X-EVOLUTION-ALARM-UID) when no canonical UID is present, so
alarms exported by Evolution/GNOME Calendar expose a usable
identifier. single_string_property now accepts an ordered list
of fallback keys so further vendor aliases can be added later.
* The rdates and exdates properties are now writable: assigning a
list replaces the RDATE/EXDATE values, del (or assigning an
empty list or None) clears them, and assigning the value the
getter returns round-trips.
* Sun May 17 2026 Dirk Müller <dmueller@suse.com>
- update to 7.1.0:
* Deprecate icalendar.parser.escape_string and
icalendar.parser.unescape_string for icalendar version 8. Use
_escape_string and _unescape_string internally. #1011
* Added behavioral tests for LazyCalendar covering serialization
round-trips, .todos, .journals, forward timezone references,
and with_uid() substring false-positives. #1050
* Added edge case tests for Conference parameter normalization
covering string passthrough, empty list filtering, and None
omission. #925
* Make icalendar an explicit editable install for clarity.
* Do not run some tests until a pull request is approved.
* Created an ical_value() property for the vBoolean component.
* Created an ical_value() property for the vFloat component.
* Created an ical_value() property for the vInt component.
* Created an ical_value() property for the vBinary component.
* Put the link check as the last documentation CI task, allowing
the documentation build and Vale to run first and fail faster.
* Extended localize() to support localizing both datetime.datetime
and datetime.time objects, returning timezone-aware
datetime.time objects for the latter. #1142
* Add type hints to tests directory functions.
* Update to Contributor Covenant 3.0 Code of Conduct,
hosted at https://pycal.org/code-of-conduct/.
* Wed Apr 01 2026 Dirk Müller <dmueller@suse.com>
- update to 7.0.3:
* Added Event.RECURRENCE_ID, Todo.RECURRENCE_ID, and
Journal.RECURRENCE_ID properties, including support in their
new() constructors. #1231
* Enabled Calendar.from_ical to read calendars from files. #756
* Added Calendar.journals property to retrieve all journal
components. #1230
* Setting calendar_name now also writes X-WR-CALNAME, and
setting description now also writes X-WR-CALDESC, for
improved client compatibility. #918
* Drop support for Python 3.8 and 3.9. #977
* DURATION_REGEX moved from icalendar.prop to
icalendar.prop.dt.duration. #987
* WEEKDAY_RULE moved from icalendar.prop to
icalendar.prop.recur.weekday. #987
* Removed tzid_from_dt and tzid_from_tzinfo from icalendar.prop
as they exist in icalendar.timezone. #987
* Component.decoded() now returns a string instead of bytes
for text properties.
* Remove constants FOLD, NAME, NEWLINE, QUNSAFE_CHAR, QUOTABLE,
UFOLD, and UNSAFE_CHAR from icalendar.parser's export. #987
* Tu