Update dependency icalendar to v7 #129

Open
renovate-bot wants to merge 1 commit from renovate/icalendar-7.x into master
Collaborator

This PR contains the following updates:

Package Change Age Confidence
icalendar (changelog) ==6.3.2==7.1.0 age confidence

Release Notes

collective/icalendar (icalendar)

v7.1.0

Compare Source

Minor changes


- Deprecate ``icalendar.parser.escape_string`` and ``icalendar.parser.unescape_string`` for icalendar version 8. Use ``_escape_string`` and ``_unescape_string`` internally. :issue:`1011`
- Added behavioral tests for :class:`~icalendar.cal.lazy.LazyCalendar` covering serialization round-trips, ``.todos``, ``.journals``, forward timezone references, and ``with_uid()`` substring false-positives. :issue:`1050`
- Added edge case tests for :class:`~icalendar.prop.conference.Conference` parameter normalization covering string passthrough, empty list filtering, and ``None`` omission. :issue:`925`
- Make icalendar an explicit editable install for clarity. :pr:`1268`
- Do not run some tests until a pull request is approved. :pr:`1246`
- Mark skipped CI tasks as skipped instead of running them. :issue:`1286`
- Created an :meth:`~icalendar.prop.boolean.vBoolean.ical_value` property for the :class:`~icalendar.prop.boolean.vBoolean` component. :issue:`876`
- Created an :meth:`~icalendar.prop.float.vFloat.ical_value` property for the :class:`~icalendar.prop.float.vFloat` component. :issue:`876`
- Created an :meth:`~icalendar.prop.integer.vInt.ical_value` property for the :class:`~icalendar.prop.integer.vInt` component. :issue:`876`
- Created an :meth:`~icalendar.prop.binary.vBinary.ical_value` property for the :class:`~icalendar.prop.binary.vBinary` component. :issue:`876`
- Put the link check as the last documentation CI task, allowing the documentation build and Vale to run first and fail faster. :pr:`1295`
- Extended :func:`~icalendar.timezone.tzp.TZP.localize` to support localizing both :class:`datetime.datetime` and :class:`datetime.time` objects, returning timezone-aware :class:`datetime.time` objects for the latter. :issue:`1142`
- Add type hints to tests directory functions. :issue:`938`
- Update to Contributor Covenant 3.0 Code of Conduct, hosted at https://pycal.org/code-of-conduct/.

New features
~~~~~~~~~~~~

- Added :class:`~icalendar.cal.lazy.LazyCalendar` for lazy parsing of subcomponents. :issue:`158`, :issue:`1050`
- Updated :func:`icalendar.prop.dt.time.vTime.from_ical` to support parsing time values with TZID parameters, returning timezone-aware :class:`datetime.time` objects. :issue:`1142`
- Added ``subcomponents`` parameter to :meth:`Component.new <icalendar.cal.component.Component.new>`, :meth:`Event.new <icalendar.cal.event.Event.new>`, :meth:`Todo.new <icalendar.cal.todo.Todo.new>`, and :meth:`Availability.new <icalendar.cal.availability.Availability.new>`. :issue:`1065`
- Switch to uv for development. :issue:`1102`

Bug fixes
~~~~~~~~~

- Allow lenient parsing of content lines with optional whitespace around property and parameter delimiters (for example, ``REFRESH - INTERVAL; VALUE = DURATION:PT48H``) when parsing calendars with ``strict=False``. :issue:`351`
- X-properties with a ``VALUE`` parameter are now parsed using the correct type instead of falling back to :class:`~icalendar.prop.unkown.vUnknown`. :issue:`1238`
- Test that the ``DURATION`` property catches :class:`datetime.timedelta` objects without vProperty wrappers. :issue:`884`
- Fixed :func:`~icalendar.attr.get_end_property` to avoid allowing the creating of VEVENT components with negative durations. Only VTODO components are allowed to have negative durations. :issue:`999`
- GitHub Actions: conditional tests now show as "skipped" instead of "pending". :issue:`1264`
- Fixed :meth:`Component.__eq__ <icalendar.cal.component.Component.__eq__>` method not being commutative when comparing subcomponents. :issue:`1224`
- Verified that the ``VALUE`` parameter of jCal components is used for the type of the component property. :issue:`1237`
- Fix :func:`~icalendar.parser.string.escape_char` handling of ``bytes`` input by converting with :func:`icalendar.parser_tools.to_unicode` before escaping. :issue:`1226`
- Fixed ``RecursionError`` in ``walk()``, ``property_items()``, and ``to_ical()`` by using iterative implementations for component traversal and property extraction. :pr:`1348`

Documentation
  • Convert docstring of :func:~icalendar.param.string_parameter to Google style. :issue:1072, :pr:1316
  • Run sphinx-build with -W to turn warnings into errors. :issue:1306
  • Added sphinx-llms-txt <https://sphinx-llms-txt.readthedocs.io/en/stable/>_ extension to generate :file:llms.txt and :file:llms-full.txt files for AI/LLM documentation consumption. :issue:1302
  • Fixed CI Vale check reporting and resolved Vale errors. :issue:1277
  • Include :file:Makefile in documentation workflow path filters so documentation CI runs when Makefile logic changes, and keep Vale failures visible in CI output. :issue:1277
  • Document how to install icalendar on Alpine Linux. :pr:1290
  • Add documentation for usage of the Sphinx extension sphinx-icalendar <https://sphinx-icalendar.readthedocs.io/en/latest/>_. :pr:1268
  • Add Repology badge and distribution installation instructions to install documentation. :issue:1119
  • Updated references to :class:~icalendar.prop.uri.vUri and :class:~icalendar.enums.RELTYPE classes in :file:attr.py. :issue:1158
  • Convert docstrings in :file:attr.py and :file:cal/calendar.py to Google Style format. :issue:1072
  • Explained import shortcuts in :doc:../explanation/api-design documentation. :issue:1161
  • Added tutorial for creating a calendar with events with attendees. :pr:1262
  • Added recognition of NLnet Foundation for its funding and Open Collective for donations to the documentation footer. :issue:1214
  • Documented vText properties according to :rfc:5545#section-3.3.11. :issue:742
  • Convert docstrings in :mod:icalendar.caselessdict to Google Style format with Parameters, Returns, Raises, and Example sections as appropriate. :issue:1072
  • Fix broken docstring for :meth:~icalendar.cal.component.Component.add_component link in :attr:~icalendar.cal.availability.Availability.available. :issue:1158
  • Revise AI policy, per NLnet advice. See discussion under pycal.org issue #&#8203;24 <https://github.com/pycalendar/pycal.org/issues/24>_.
  • Add documentation for how to use uv for development. :issue:1102
  • Reorganize Design documentation. :issue:1292
  • Improve docstring for categories_property, which renders to HTML in :attr:Calendar.categories <icalendar.cal.calendar.Calendar.categories>, :attr:Event.categories <icalendar.cal.event.Event.categories>, :attr:Journal.categories <icalendar.cal.journal.Journal.categories>, and :attr:Todo.categories <icalendar.cal.todo.Todo.categories>. :issue:1244
  • Fixed Python object cross-references in icalendar.cal.component.Component._infer_value_type. :issue:1158, :pr:1344

v7.0.3

Compare Source

Minor changes


- Show colorful required code changes in the CI output to help contributors solve the formatting issues. :pr:`1216`
- Use ruff 0.15.0 for code formatting in :file:`tox.ini`. :pr:`1215`

New features
~~~~~~~~~~~~

- Added :attr:`Event.RECURRENCE_ID <icalendar.cal.event.Event.RECURRENCE_ID>`, :attr:`Todo.RECURRENCE_ID <icalendar.cal.todo.Todo.RECURRENCE_ID>`, and :attr:`Journal.RECURRENCE_ID <icalendar.cal.journal.Journal.RECURRENCE_ID>` properties, including support in their ``new()`` constructors. :issue:`1231`

Bug fixes
~~~~~~~~~

- Fixed :func:`~icalendar.timezone.tzid.tzids_from_tzinfo` not recognizing
  ``dateutil.tz.win.tzwin`` objects on Windows. UTC datetimes using
  ``dateutil.tz.gettz("UTC")`` now correctly serialize with the ``Z`` suffix
  instead of ``TZID=Coordinated Universal Time``. :issue:`1056`
- Fixed :meth:`Calendar.get_missing_tzids <icalendar.cal.calendar.Calendar.get_missing_tzids>`
  raising ``KeyError`` when a VTIMEZONE exists for a timezone not referenced by any event TZID,
  for example, when added by the ``x-wr-timezone`` conversion. :issue:`1124`
- Fixed :meth:`Calendar.get_missing_tzids <icalendar.cal.calendar.Calendar.get_missing_tzids>`
  and :meth:`Calendar.add_missing_timezones <icalendar.cal.calendar.Calendar.add_missing_timezones>`
  generating a spurious ``VTIMEZONE`` for UTC. :rfc:`5545#section-3.2.19` requires UTC datetimes
  to use the ``Z`` suffix; no ``VTIMEZONE`` component is needed or permitted. :issue:`1124`
- Fixed :meth:`Parameters.update_tzid_from <icalendar.parser.parameter.Parameters.update_tzid_from>`
  incorrectly setting ``TZID=UTC`` on UTC datetimes. :rfc:`5545#section-3.2.19` requires UTC datetimes to
  use the ``Z`` suffix without a ``TZID`` parameter. :issue:`1124`
- Renamed the public functions ``escape_char`` and ``unescape_char`` to implicit private methods ``_escape_char`` and ``_unescape_char``
  Fixed regression from :issue:`1008` by restoring :func:`~icalendar.parser.string.escape_char` and :func:`~icalendar.parser.string.unescape_char` as public functions.
  The public functions :func:`~icalendar.parser.string.escape_char` and :func:`~icalendar.parser.string.unescape_char` are now deprecated with warnings for external users.
  :pr:`1241`

Documentation
  • Add icalendar as a local workspace dependency to the docs dependency group in :file:pyproject.toml to fix dependency resolution issues with uv lock during documentation builds. :issue:1253 :pr:1254
  • Use sphinx-icalendar to add syntax highlighting to iCalendar text

v7.0.2

Compare Source

Minor changes


- Show required code changes in the CI output to help contributors solve the formatting issues. :pr:`1216`
- Use ruff 0.15.0 for code formatting in :file:`tox.ini`. :pr:`1215`

New features
~~~~~~~~~~~~

- Enabled :meth:`Calendar.from_ical <icalendar.cal.calendar.Calendar.from_ical>` to read calendars from files. :issue:`756`
- Added :attr:`Calendar.journals <icalendar.cal.calendar.Calendar.journals>` property to retrieve all journal components. :issue:`1230`

Documentation
  • Removed methods of str, int, and other classes and methods in the Python standard library from the documentation.

v7.0.1

Compare Source

Minor changes


- Setting :attr:`~cal.calendar.Calendar.calendar_name` now also writes ``X-WR-CALNAME``, and setting :attr:`~cal.calendar.Calendar.description` now also writes ``X-WR-CALDESC``, for improved client compatibility. :issue:`918`

Bug fixes
~~~~~~~~~

- Make ``typing_extensions`` a dependency. :issue:`1202`

Documentation
  • Fixed the version switcher on Read the Docs, and documented the process for a major release. :issue:1194
  • Added usage examples for reading calendars from files and URL. :issue:756
  • Add type hints and convert docstrings to Google Style in :file:cli.py. :issue:938

v7.0.0

Compare Source

Minor changes


- Created an :meth:`~cal.todo.Todo.example` method for the :class:`~cal.todo.Todo` component. :issue:`743`
- Created an :meth:`~cal.alarm.Alarm.example` method for the :class:`~cal.alarm.Alarm` component. :issue:`743`
- Move property classes from :mod:`icalendar.prop` into their own files with sub-packages :mod:`icalendar.prop.recur` and :mod:`icalendar.prop.dt`. :issue:`987`
- Move classes and functions in :mod:`icalendar.parser` into their own files. :issue:`987`
- Clarified custom component (X-* and IANA-registered) parsing behavior through enhanced documentation and comprehensive how-to guide. Custom components are automatically handled by the library with no special configuration required. :issue:`432`
- Reorganized custom component tests into a dedicated :file:`test_custom_components.py` file with expanded test coverage for :meth:`Component.from_ical <icalendar.cal.component.Component.from_ical>`, :meth:`Calendar.from_ical <icalendar.cal.calendar.Calendar.from_ical>`, and :class:`~icalendar.cal.component_factory.ComponentFactory` usage. :issue:`433`
- The ``typing-extensions`` dependency on Python < 3.13 is now optional, part of the ``test`` extra.
- The :func:`icalendar.tools.is_pytz_dt` return value is now hinted as ``TypeGuard[datetime]``, not ``TypeIs[datetime]``, since returning ``False`` should not allow narrowing it as non-datetime.
- Regroup dependencies in, and remove obsolete ones, from :file:`pyproject.toml`. :issue:`906`
- Add type hints to internal helper functions. :issue:`938`
- Add type hints to prop value classes (vBoolean, vFloat, vUri, vBinary, vInline). :issue:`938`
- Add type hints to remaining prop value classes (vText, vCalAddress, vCategory, vGeo, vN, vOrg, vAdr, vBroken, vUid, Conference, Image). :issue:`938`
- Added type hints and overloads to :meth:`Calendar.from_ical <icalendar.cal.calendar.Calendar.from_ical>` and :meth:`Component.from_ical <icalendar.cal.component.Component.from_ical>` to support ``multiple=True/False`` return types. :issue:`1129`
- CI: Print a link to Vale documentation when the spell checker fails.
- Remove :file:`bootstrap.py` and :file:`buildout.cfg` files as they are old build configurations. :pr:`1171`
- Enforce ruff formatting and linting across the entire codebase, with CI check to prevent regressions.
  :issue:`672`, :pr:`1171`, :pr:`1172`, :pr:`1173`, :pr:`1174`, :pr:`1175`, :pr:`1176`, :pr:`1177`, :pr:`1178`, :pr:`1179`, :pr:`1180`, and :pr:`1181`
- Fix type annotations, typos, and validation logic in prop module: corrected return type hints in ``parse_jcal_value`` methods, fixed ``to_ical()`` return type in vDDDTypes, updated ClassVar type hint in TypesFactory, removed dead code, fixed "abbrevation" typo in vWeekday, and corrected validation logic in vMonth. :issue:`1185`
- Rename :class:`~icalendar.prop.vBrokenProperty` to :class:`~icalendar.prop.vBroken` to match naming convention. :class:`~icalendar.prop.vBroken` now stores the actual exception object in ``parse_error`` instead of a string, and raises :class:`~icalendar.error.BrokenCalendarProperty` when accessing attributes like ``.dt`` that the expected type would have. :issue:`1087`

Breaking changes
  • Drop support for Python 3.8 and 3.9. :issue:977
  • DURATION_REGEX moved from :mod:icalendar.prop to :mod:icalendar.prop.dt.duration. :issue:987
  • WEEKDAY_RULE moved from :mod:icalendar.prop to :mod:icalendar.prop.recur.weekday. :issue:987
  • Removed tzid_from_dt and tzid_from_tzinfo from :mod:icalendar.prop as they exist in :mod:icalendar.timezone. :issue:987
  • :meth: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 :mod:icalendar.parser's export. :issue:987

New features


- Added ``recursive`` parameter to :meth:`Component.copy` to control copying of subcomponents and properties. :issue:`899`
- Event components now have error-tolerant property parsing. Properties with parsing errors fall back to :class:`~icalendar.prop.vBroken`, preserving the raw value and allowing access to other valid properties. Errors are recorded in ``component.errors``. Partially addresses :issue:`158`
- Added :class:`~icalendar.prop.AdrFields` and :class:`~icalendar.prop.NFields` named tuples for structured access to vCard ADR and N property fields. The ``fields`` attribute and ``from_ical()`` return value of :class:`~icalendar.prop.vAdr` and :class:`~icalendar.prop.vN` now return these typed named tuples, enabling access like ``adr.fields.street`` and ``n.fields.family``. Since named tuples are tuple subclasses, existing code using tuple indexing or unpacking remains compatible. Added ``name`` and ``units`` properties to :class:`~icalendar.prop.vOrg` for convenient access to the organization name and organizational units. Added ``ical_value`` property to all three classes. :issue:`1060`
- Added ``with_uid`` method to ``Component`` to filter subcomponents by UID. :issue:`950`
- Enforce linting of code with Ruff in CI. :issue:`672`

Bug fixes
~~~~~~~~~

- Fixed :meth:`Calendar.new <icalendar.cal.calendar.Calendar.new>` to automatically generate a UID when not provided, matching the documented behavior. Previously, the documentation stated that ``uid`` would be set to a new :func:`uuid.uuid4` if ``None``, but the implementation did not generate it. :issue:`1066`
- Fixed import failure in Pyodide/WebAssembly environments by using lazy initialization for timezone data in the zoneinfo provider. The library can now be imported in environments without timezone data (e.g., Cloudflare Workers, PyScript, JupyterLite). :issue:`1073`
- Fixed :meth:`icalendar.caselessdict.CaselessDict.__eq__` to return ``NotImplemented`` when comparing with non-dict types instead of raising ``AttributeError``. :issue:`1016`
- Fixed decoding of categories. :issue:`279`
- Link ``timedelta`` to :py:class:`datetime.timedelta` in the Python standard library documentation. :issue:`951`
- Fix round-trip parsing of :class:`~icalendar.prop.vCategory` (CATEGORIES property) when category values contain commas. Categories like ``'Meeting, John'`` now correctly survive round trips between :meth:`Component.to_ical <icalendar.cal.component.Component.to_ical>` and :meth:`Component.from_ical <icalendar.cal.component.Component.from_ical>` instead of being split into multiple categories. Added :func:`~icalendar.parser.split_on_unescaped_comma` helper function. :issue:`127`
- Fixed semicolon escaping in vCard structured properties (ADR, N, ORG). Semicolons are now correctly treated as field separators per :rfc:`6350`, not escaped as in iCalendar TEXT values. Added :func:`~icalendar.parser.split_on_unescaped_semicolon` helper function and :class:`~icalendar.prop.vAdr`, :class:`~icalendar.prop.vN`, :class:`~icalendar.prop.vOrg` property types. :issue:`137`
- Fix :meth:`Image.from_property_value <icalendar.prop.image.Image.from_property_value>` to raise ``TypeError`` instead of ``AttributeError`` when ``value.params`` isn't valid (most notably, isn't dict-like). :issue:`909`

Documentation
  • Improved docstrings and formatting for the :class:~icalendar.alarms.AlarmTime class. :issue:1072
  • Added how-to guide for handling parsing errors with :class:~icalendar.prop.vBroken and the component.errors attribute. :issue:1085
  • Updated 11 function docstrings in :mod:icalendar.parser to follow the Google Style guide, improving API documentation clarity and consistency. :issue:1072
  • Applied Google-style docstrings to :mod:icalendar.tools utility functions with Args, Returns, and Example sections. :issue:1072
  • Simplify contributors and add supporters in credits. :issue:1035
  • Add a section in the change log for Documentation. :issue:1043
  • Fixed multiple more than one target found for cross-reference warnings, and stopped using sphinx.ext.autosectionlabel, in documentation. :issue:952
  • Add funding.json manifest for funding information. :issue:1047
  • Resolved Cannot resolve forward reference in type annotations warning in documentation.
    Added SPHINX_APIDOC_OPTIONS to make apidoc command, excluding __all__ items from being duplicated in the documentation, and rebuilt the API documentation source files.
    :issue:952
  • Document how to create and read attendee information in events. :issue:130
  • Add usage examples. :issue:443
  • Improve documentation contribution guide by adding chapters for small edits, builds and checks, and a style guide. Added details for Vale usage, Diátaxis framework, narrative and API documentation, and fixing all spelling errors. :issue:991
  • Document dictionary and property accessors. :issue:124
  • Moved content from the README into documentation to reduce maintenance and point to the authoritative source of information.
    :issue:1006
  • Added "Code conventions" section to the Development contributing guide.
    :issue:1004
  • Use Google style docstrings in :mod:~icalendar.parser_tools
    :issue:1017
  • Document compatibility of icalendar with RFCs. :issue:1147
  • Added Upgrade guide. :issue:997
  • Fixed links in jCal usage documentation.
  • Enable sphinx-issues extension. :issue:1091
  • Replaced "Arguments" and "Args" with "Parameters". :issue:1076
  • Added documentation of how to set up a development environment with git. :issue:906
  • Documented how to install and use pre-commit. :issue:996
  • Added a new rule to our docstring style guide to escape docstrings, and added a new section for type hints in the code conventions section. :issue:1080
  • Documented __init__ methods. :issue:1079
  • Moved "Edit this page" link to above the page table of contents. :issue:1106
  • Added Good First Issue link and fixed Up For Grabs link in Contribute guide. :issue:1095
  • Updated CONTRIBUTING.rst to explicitly state not to use Args sections in docstrings. :issue:1076
  • Document vInt.__new__ method parameters in class docstring with :rfc:5545 examples. :issue:1118
  • Improved make vale command to provide guidance on failure or success. :issue:1137
  • Add sphinx_copybutton configuration to exclude line numbers, prompts, and console output when copying code blocks.
  • Change Sphinx configuration to convert -- to en dash -, --- to em dash , and ... to ellipsis , but doesn't transform quote marks as they should be preserved.
    This restores cleaner and consistent rendering of docstrings in the :doc:API Reference <../reference/api/icalendar>.
    See smartquotes_action <https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-smartquotes_action>_.
  • Fix incorrect return type annotation in :meth:Component.from_ical <icalendar.cal.component.Component.from_ical>. :issue:1141
  • Fixed broken links in docs/how-to/usage.rst documentation. Part of :issue:1158
  • Enhanced the first-time contributors section, in hopes that fewer contributors ask permission before starting work. :issue:1165
  • Changed Sphinx configuration to inherit from CaselessDict, displaying all of its class members in the in-page navigation.
    Fixed broken cross-component links in Availability.new(). :issue:994
  • Configured Sphinx to append the docstring from the __init__ method into its class docstring. :issue:1156

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [icalendar](https://github.com/collective/icalendar) ([changelog](https://icalendar.readthedocs.io/en/stable/changelog.html)) | `==6.3.2` → `==7.1.0` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/icalendar/7.1.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/icalendar/6.3.2/7.1.0?slim=true) | --- ### Release Notes <details> <summary>collective/icalendar (icalendar)</summary> ### [`v7.1.0`](https://github.com/collective/icalendar/blob/HEAD/CHANGES.rst#710-2026-04-30) [Compare Source](https://github.com/collective/icalendar/compare/v7.0.3...v7.1.0) Minor changes ``` - Deprecate ``icalendar.parser.escape_string`` and ``icalendar.parser.unescape_string`` for icalendar version 8. Use ``_escape_string`` and ``_unescape_string`` internally. :issue:`1011` - Added behavioral tests for :class:`~icalendar.cal.lazy.LazyCalendar` covering serialization round-trips, ``.todos``, ``.journals``, forward timezone references, and ``with_uid()`` substring false-positives. :issue:`1050` - Added edge case tests for :class:`~icalendar.prop.conference.Conference` parameter normalization covering string passthrough, empty list filtering, and ``None`` omission. :issue:`925` - Make icalendar an explicit editable install for clarity. :pr:`1268` - Do not run some tests until a pull request is approved. :pr:`1246` - Mark skipped CI tasks as skipped instead of running them. :issue:`1286` - Created an :meth:`~icalendar.prop.boolean.vBoolean.ical_value` property for the :class:`~icalendar.prop.boolean.vBoolean` component. :issue:`876` - Created an :meth:`~icalendar.prop.float.vFloat.ical_value` property for the :class:`~icalendar.prop.float.vFloat` component. :issue:`876` - Created an :meth:`~icalendar.prop.integer.vInt.ical_value` property for the :class:`~icalendar.prop.integer.vInt` component. :issue:`876` - Created an :meth:`~icalendar.prop.binary.vBinary.ical_value` property for the :class:`~icalendar.prop.binary.vBinary` component. :issue:`876` - Put the link check as the last documentation CI task, allowing the documentation build and Vale to run first and fail faster. :pr:`1295` - Extended :func:`~icalendar.timezone.tzp.TZP.localize` to support localizing both :class:`datetime.datetime` and :class:`datetime.time` objects, returning timezone-aware :class:`datetime.time` objects for the latter. :issue:`1142` - Add type hints to tests directory functions. :issue:`938` - Update to Contributor Covenant 3.0 Code of Conduct, hosted at https://pycal.org/code-of-conduct/. New features ~~~~~~~~~~~~ - Added :class:`~icalendar.cal.lazy.LazyCalendar` for lazy parsing of subcomponents. :issue:`158`, :issue:`1050` - Updated :func:`icalendar.prop.dt.time.vTime.from_ical` to support parsing time values with TZID parameters, returning timezone-aware :class:`datetime.time` objects. :issue:`1142` - Added ``subcomponents`` parameter to :meth:`Component.new <icalendar.cal.component.Component.new>`, :meth:`Event.new <icalendar.cal.event.Event.new>`, :meth:`Todo.new <icalendar.cal.todo.Todo.new>`, and :meth:`Availability.new <icalendar.cal.availability.Availability.new>`. :issue:`1065` - Switch to uv for development. :issue:`1102` Bug fixes ~~~~~~~~~ - Allow lenient parsing of content lines with optional whitespace around property and parameter delimiters (for example, ``REFRESH - INTERVAL; VALUE = DURATION:PT48H``) when parsing calendars with ``strict=False``. :issue:`351` - X-properties with a ``VALUE`` parameter are now parsed using the correct type instead of falling back to :class:`~icalendar.prop.unkown.vUnknown`. :issue:`1238` - Test that the ``DURATION`` property catches :class:`datetime.timedelta` objects without vProperty wrappers. :issue:`884` - Fixed :func:`~icalendar.attr.get_end_property` to avoid allowing the creating of VEVENT components with negative durations. Only VTODO components are allowed to have negative durations. :issue:`999` - GitHub Actions: conditional tests now show as "skipped" instead of "pending". :issue:`1264` - Fixed :meth:`Component.__eq__ <icalendar.cal.component.Component.__eq__>` method not being commutative when comparing subcomponents. :issue:`1224` - Verified that the ``VALUE`` parameter of jCal components is used for the type of the component property. :issue:`1237` - Fix :func:`~icalendar.parser.string.escape_char` handling of ``bytes`` input by converting with :func:`icalendar.parser_tools.to_unicode` before escaping. :issue:`1226` - Fixed ``RecursionError`` in ``walk()``, ``property_items()``, and ``to_ical()`` by using iterative implementations for component traversal and property extraction. :pr:`1348` Documentation ``` - Convert docstring of :func:`~icalendar.param.string_parameter` to Google style. :issue:`1072`, :pr:`1316` - Run `sphinx-build` with `-W` to turn warnings into errors. :issue:`1306` - Added `sphinx-llms-txt <https://sphinx-llms-txt.readthedocs.io/en/stable/>`\_ extension to generate :file:`llms.txt` and :file:`llms-full.txt` files for AI/LLM documentation consumption. :issue:`1302` - Fixed CI Vale check reporting and resolved Vale errors. :issue:`1277` - Include :file:`Makefile` in documentation workflow path filters so documentation CI runs when Makefile logic changes, and keep Vale failures visible in CI output. :issue:`1277` - Document how to install icalendar on Alpine Linux. :pr:`1290` - Add documentation for usage of the Sphinx extension `sphinx-icalendar <https://sphinx-icalendar.readthedocs.io/en/latest/>`\_. :pr:`1268` - Add Repology badge and distribution installation instructions to install documentation. :issue:`1119` - Updated references to :class:`~icalendar.prop.uri.vUri` and :class:`~icalendar.enums.RELTYPE` classes in :file:`attr.py`. :issue:`1158` - Convert docstrings in :file:`attr.py` and :file:`cal/calendar.py` to Google Style format. :issue:`1072` - Explained import shortcuts in :doc:`../explanation/api-design` documentation. :issue:`1161` - Added tutorial for creating a calendar with events with attendees. :pr:`1262` - Added recognition of NLnet Foundation for its funding and Open Collective for donations to the documentation footer. :issue:`1214` - Documented `vText` properties according to :rfc:`5545#section-3.3.11`. :issue:`742` - Convert docstrings in :mod:`icalendar.caselessdict` to Google Style format with `Parameters`, `Returns`, `Raises`, and `Example` sections as appropriate. :issue:`1072` - Fix broken docstring for :meth:`~icalendar.cal.component.Component.add_component` link in :attr:`~icalendar.cal.availability.Availability.available`. :issue:`1158` - Revise AI policy, per NLnet advice. See discussion under `pycal.org issue #&#8203;24 <https://github.com/pycalendar/pycal.org/issues/24>`\_. - Add documentation for how to use uv for development. :issue:`1102` - Reorganize Design documentation. :issue:`1292` - Improve docstring for `categories_property`, which renders to HTML in :attr:`Calendar.categories <icalendar.cal.calendar.Calendar.categories>`, :attr:`Event.categories <icalendar.cal.event.Event.categories>`, :attr:`Journal.categories <icalendar.cal.journal.Journal.categories>`, and :attr:`Todo.categories <icalendar.cal.todo.Todo.categories>`. :issue:`1244` - Fixed Python object cross-references in `icalendar.cal.component.Component._infer_value_type`. :issue:`1158`, :pr:`1344` ### [`v7.0.3`](https://github.com/collective/icalendar/blob/HEAD/CHANGES.rst#703-2026-03-03) [Compare Source](https://github.com/collective/icalendar/compare/v7.0.2...v7.0.3) Minor changes ``` - Show colorful required code changes in the CI output to help contributors solve the formatting issues. :pr:`1216` - Use ruff 0.15.0 for code formatting in :file:`tox.ini`. :pr:`1215` New features ~~~~~~~~~~~~ - Added :attr:`Event.RECURRENCE_ID <icalendar.cal.event.Event.RECURRENCE_ID>`, :attr:`Todo.RECURRENCE_ID <icalendar.cal.todo.Todo.RECURRENCE_ID>`, and :attr:`Journal.RECURRENCE_ID <icalendar.cal.journal.Journal.RECURRENCE_ID>` properties, including support in their ``new()`` constructors. :issue:`1231` Bug fixes ~~~~~~~~~ - Fixed :func:`~icalendar.timezone.tzid.tzids_from_tzinfo` not recognizing ``dateutil.tz.win.tzwin`` objects on Windows. UTC datetimes using ``dateutil.tz.gettz("UTC")`` now correctly serialize with the ``Z`` suffix instead of ``TZID=Coordinated Universal Time``. :issue:`1056` - Fixed :meth:`Calendar.get_missing_tzids <icalendar.cal.calendar.Calendar.get_missing_tzids>` raising ``KeyError`` when a VTIMEZONE exists for a timezone not referenced by any event TZID, for example, when added by the ``x-wr-timezone`` conversion. :issue:`1124` - Fixed :meth:`Calendar.get_missing_tzids <icalendar.cal.calendar.Calendar.get_missing_tzids>` and :meth:`Calendar.add_missing_timezones <icalendar.cal.calendar.Calendar.add_missing_timezones>` generating a spurious ``VTIMEZONE`` for UTC. :rfc:`5545#section-3.2.19` requires UTC datetimes to use the ``Z`` suffix; no ``VTIMEZONE`` component is needed or permitted. :issue:`1124` - Fixed :meth:`Parameters.update_tzid_from <icalendar.parser.parameter.Parameters.update_tzid_from>` incorrectly setting ``TZID=UTC`` on UTC datetimes. :rfc:`5545#section-3.2.19` requires UTC datetimes to use the ``Z`` suffix without a ``TZID`` parameter. :issue:`1124` - Renamed the public functions ``escape_char`` and ``unescape_char`` to implicit private methods ``_escape_char`` and ``_unescape_char`` Fixed regression from :issue:`1008` by restoring :func:`~icalendar.parser.string.escape_char` and :func:`~icalendar.parser.string.unescape_char` as public functions. The public functions :func:`~icalendar.parser.string.escape_char` and :func:`~icalendar.parser.string.unescape_char` are now deprecated with warnings for external users. :pr:`1241` Documentation ``` - Add `icalendar` as a local workspace dependency to the `docs` dependency group in :file:`pyproject.toml` to fix dependency resolution issues with `uv lock` during documentation builds. :issue:`1253` :pr:`1254` - Use `sphinx-icalendar` to add syntax highlighting to iCalendar text ### [`v7.0.2`](https://github.com/collective/icalendar/blob/HEAD/CHANGES.rst#702-2026-02-24) [Compare Source](https://github.com/collective/icalendar/compare/v7.0.1...v7.0.2) Minor changes ``` - Show required code changes in the CI output to help contributors solve the formatting issues. :pr:`1216` - Use ruff 0.15.0 for code formatting in :file:`tox.ini`. :pr:`1215` New features ~~~~~~~~~~~~ - Enabled :meth:`Calendar.from_ical <icalendar.cal.calendar.Calendar.from_ical>` to read calendars from files. :issue:`756` - Added :attr:`Calendar.journals <icalendar.cal.calendar.Calendar.journals>` property to retrieve all journal components. :issue:`1230` Documentation ``` - Removed methods of `str`, `int`, and other classes and methods in the Python standard library from the documentation. ### [`v7.0.1`](https://github.com/collective/icalendar/blob/HEAD/CHANGES.rst#701-2026-02-17) [Compare Source](https://github.com/collective/icalendar/compare/v7.0.0...v7.0.1) Minor changes ``` - Setting :attr:`~cal.calendar.Calendar.calendar_name` now also writes ``X-WR-CALNAME``, and setting :attr:`~cal.calendar.Calendar.description` now also writes ``X-WR-CALDESC``, for improved client compatibility. :issue:`918` Bug fixes ~~~~~~~~~ - Make ``typing_extensions`` a dependency. :issue:`1202` Documentation ``` - Fixed the version switcher on Read the Docs, and documented the process for a major release. :issue:`1194` - Added usage examples for reading calendars from files and URL. :issue:`756` - Add type hints and convert docstrings to Google Style in :file:`cli.py`. :issue:`938` ### [`v7.0.0`](https://github.com/collective/icalendar/blob/HEAD/CHANGES.rst#700-2026-02-11) [Compare Source](https://github.com/collective/icalendar/compare/v6.3.2...v7.0.0) Minor changes ``` - Created an :meth:`~cal.todo.Todo.example` method for the :class:`~cal.todo.Todo` component. :issue:`743` - Created an :meth:`~cal.alarm.Alarm.example` method for the :class:`~cal.alarm.Alarm` component. :issue:`743` - Move property classes from :mod:`icalendar.prop` into their own files with sub-packages :mod:`icalendar.prop.recur` and :mod:`icalendar.prop.dt`. :issue:`987` - Move classes and functions in :mod:`icalendar.parser` into their own files. :issue:`987` - Clarified custom component (X-* and IANA-registered) parsing behavior through enhanced documentation and comprehensive how-to guide. Custom components are automatically handled by the library with no special configuration required. :issue:`432` - Reorganized custom component tests into a dedicated :file:`test_custom_components.py` file with expanded test coverage for :meth:`Component.from_ical <icalendar.cal.component.Component.from_ical>`, :meth:`Calendar.from_ical <icalendar.cal.calendar.Calendar.from_ical>`, and :class:`~icalendar.cal.component_factory.ComponentFactory` usage. :issue:`433` - The ``typing-extensions`` dependency on Python < 3.13 is now optional, part of the ``test`` extra. - The :func:`icalendar.tools.is_pytz_dt` return value is now hinted as ``TypeGuard[datetime]``, not ``TypeIs[datetime]``, since returning ``False`` should not allow narrowing it as non-datetime. - Regroup dependencies in, and remove obsolete ones, from :file:`pyproject.toml`. :issue:`906` - Add type hints to internal helper functions. :issue:`938` - Add type hints to prop value classes (vBoolean, vFloat, vUri, vBinary, vInline). :issue:`938` - Add type hints to remaining prop value classes (vText, vCalAddress, vCategory, vGeo, vN, vOrg, vAdr, vBroken, vUid, Conference, Image). :issue:`938` - Added type hints and overloads to :meth:`Calendar.from_ical <icalendar.cal.calendar.Calendar.from_ical>` and :meth:`Component.from_ical <icalendar.cal.component.Component.from_ical>` to support ``multiple=True/False`` return types. :issue:`1129` - CI: Print a link to Vale documentation when the spell checker fails. - Remove :file:`bootstrap.py` and :file:`buildout.cfg` files as they are old build configurations. :pr:`1171` - Enforce ruff formatting and linting across the entire codebase, with CI check to prevent regressions. :issue:`672`, :pr:`1171`, :pr:`1172`, :pr:`1173`, :pr:`1174`, :pr:`1175`, :pr:`1176`, :pr:`1177`, :pr:`1178`, :pr:`1179`, :pr:`1180`, and :pr:`1181` - Fix type annotations, typos, and validation logic in prop module: corrected return type hints in ``parse_jcal_value`` methods, fixed ``to_ical()`` return type in vDDDTypes, updated ClassVar type hint in TypesFactory, removed dead code, fixed "abbrevation" typo in vWeekday, and corrected validation logic in vMonth. :issue:`1185` - Rename :class:`~icalendar.prop.vBrokenProperty` to :class:`~icalendar.prop.vBroken` to match naming convention. :class:`~icalendar.prop.vBroken` now stores the actual exception object in ``parse_error`` instead of a string, and raises :class:`~icalendar.error.BrokenCalendarProperty` when accessing attributes like ``.dt`` that the expected type would have. :issue:`1087` Breaking changes ``` - Drop support for Python 3.8 and 3.9. :issue:`977` - `DURATION_REGEX` moved from :mod:`icalendar.prop` to :mod:`icalendar.prop.dt.duration`. :issue:`987` - `WEEKDAY_RULE` moved from :mod:`icalendar.prop` to :mod:`icalendar.prop.recur.weekday`. :issue:`987` - Removed `tzid_from_dt` and `tzid_from_tzinfo` from :mod:`icalendar.prop` as they exist in :mod:`icalendar.timezone`. :issue:`987` - :meth:`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 :mod:`icalendar.parser`'s export. :issue:`987` New features ``` - Added ``recursive`` parameter to :meth:`Component.copy` to control copying of subcomponents and properties. :issue:`899` - Event components now have error-tolerant property parsing. Properties with parsing errors fall back to :class:`~icalendar.prop.vBroken`, preserving the raw value and allowing access to other valid properties. Errors are recorded in ``component.errors``. Partially addresses :issue:`158` - Added :class:`~icalendar.prop.AdrFields` and :class:`~icalendar.prop.NFields` named tuples for structured access to vCard ADR and N property fields. The ``fields`` attribute and ``from_ical()`` return value of :class:`~icalendar.prop.vAdr` and :class:`~icalendar.prop.vN` now return these typed named tuples, enabling access like ``adr.fields.street`` and ``n.fields.family``. Since named tuples are tuple subclasses, existing code using tuple indexing or unpacking remains compatible. Added ``name`` and ``units`` properties to :class:`~icalendar.prop.vOrg` for convenient access to the organization name and organizational units. Added ``ical_value`` property to all three classes. :issue:`1060` - Added ``with_uid`` method to ``Component`` to filter subcomponents by UID. :issue:`950` - Enforce linting of code with Ruff in CI. :issue:`672` Bug fixes ~~~~~~~~~ - Fixed :meth:`Calendar.new <icalendar.cal.calendar.Calendar.new>` to automatically generate a UID when not provided, matching the documented behavior. Previously, the documentation stated that ``uid`` would be set to a new :func:`uuid.uuid4` if ``None``, but the implementation did not generate it. :issue:`1066` - Fixed import failure in Pyodide/WebAssembly environments by using lazy initialization for timezone data in the zoneinfo provider. The library can now be imported in environments without timezone data (e.g., Cloudflare Workers, PyScript, JupyterLite). :issue:`1073` - Fixed :meth:`icalendar.caselessdict.CaselessDict.__eq__` to return ``NotImplemented`` when comparing with non-dict types instead of raising ``AttributeError``. :issue:`1016` - Fixed decoding of categories. :issue:`279` - Link ``timedelta`` to :py:class:`datetime.timedelta` in the Python standard library documentation. :issue:`951` - Fix round-trip parsing of :class:`~icalendar.prop.vCategory` (CATEGORIES property) when category values contain commas. Categories like ``'Meeting, John'`` now correctly survive round trips between :meth:`Component.to_ical <icalendar.cal.component.Component.to_ical>` and :meth:`Component.from_ical <icalendar.cal.component.Component.from_ical>` instead of being split into multiple categories. Added :func:`~icalendar.parser.split_on_unescaped_comma` helper function. :issue:`127` - Fixed semicolon escaping in vCard structured properties (ADR, N, ORG). Semicolons are now correctly treated as field separators per :rfc:`6350`, not escaped as in iCalendar TEXT values. Added :func:`~icalendar.parser.split_on_unescaped_semicolon` helper function and :class:`~icalendar.prop.vAdr`, :class:`~icalendar.prop.vN`, :class:`~icalendar.prop.vOrg` property types. :issue:`137` - Fix :meth:`Image.from_property_value <icalendar.prop.image.Image.from_property_value>` to raise ``TypeError`` instead of ``AttributeError`` when ``value.params`` isn't valid (most notably, isn't dict-like). :issue:`909` Documentation ``` - Improved docstrings and formatting for the :class:`~icalendar.alarms.AlarmTime` class. :issue:`1072` - Added how-to guide for handling parsing errors with :class:`~icalendar.prop.vBroken` and the `component.errors` attribute. :issue:`1085` - Updated 11 function docstrings in :mod:`icalendar.parser` to follow the Google Style guide, improving API documentation clarity and consistency. :issue:`1072` - Applied Google-style docstrings to :mod:`icalendar.tools` utility functions with Args, Returns, and Example sections. :issue:`1072` - Simplify contributors and add supporters in credits. :issue:`1035` - Add a section in the change log for Documentation. :issue:`1043` - Fixed multiple `more than one target found for cross-reference` warnings, and stopped using `sphinx.ext.autosectionlabel`, in documentation. :issue:`952` - Add `funding.json` manifest for funding information. :issue:`1047` - Resolved `Cannot resolve forward reference in type annotations` warning in documentation. Added `SPHINX_APIDOC_OPTIONS` to `make apidoc` command, excluding `__all__` items from being duplicated in the documentation, and rebuilt the API documentation source files. :issue:`952` - Document how to create and read attendee information in events. :issue:`130` - Add usage examples. :issue:`443` - Improve documentation contribution guide by adding chapters for small edits, builds and checks, and a style guide. Added details for Vale usage, Diátaxis framework, narrative and API documentation, and fixing all spelling errors. :issue:`991` - Document dictionary and property accessors. :issue:`124` - Moved content from the README into documentation to reduce maintenance and point to the authoritative source of information. :issue:`1006` - Added "Code conventions" section to the Development contributing guide. :issue:`1004` - Use Google style docstrings in :mod:`~icalendar.parser_tools` :issue:`1017` - Document compatibility of icalendar with RFCs. :issue:`1147` - Added Upgrade guide. :issue:`997` - Fixed links in jCal usage documentation. - Enable sphinx-issues extension. :issue:`1091` - Replaced "Arguments" and "Args" with "Parameters". :issue:`1076` - Added documentation of how to set up a development environment with git. :issue:`906` - Documented how to install and use pre-commit. :issue:`996` - Added a new rule to our docstring style guide to escape docstrings, and added a new section for type hints in the code conventions section. :issue:`1080` - Documented `__init__` methods. :issue:`1079` - Moved "Edit this page" link to above the page table of contents. :issue:`1106` - Added Good First Issue link and fixed Up For Grabs link in Contribute guide. :issue:`1095` - Updated `CONTRIBUTING.rst` to explicitly state not to use Args sections in docstrings. :issue:`1076` - Document `vInt.__new__` method parameters in class docstring with :rfc:`5545` examples. :issue:`1118` - Improved `make vale` command to provide guidance on failure or success. :issue:`1137` - Add `sphinx_copybutton` configuration to exclude line numbers, prompts, and console output when copying code blocks. - Change Sphinx configuration to convert `--` to en dash `-`, `---` to em dash `—`, and `...` to ellipsis `…`, but doesn't transform quote marks as they should be preserved. This restores cleaner and consistent rendering of docstrings in the :doc:`API Reference <../reference/api/icalendar>`. See `smartquotes_action <https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-smartquotes_action>`\_. - Fix incorrect return type annotation in :meth:`Component.from_ical <icalendar.cal.component.Component.from_ical>`. :issue:`1141` - Fixed broken links in `docs/how-to/usage.rst` documentation. Part of :issue:`1158` - Enhanced the first-time contributors section, in hopes that fewer contributors ask permission before starting work. :issue:`1165` - Changed Sphinx configuration to inherit from `CaselessDict`, displaying all of its class members in the in-page navigation. Fixed broken cross-component links in `Availability.new()`. :issue:`994` - Configured Sphinx to append the docstring from the `__init__` method into its class docstring. :issue:`1156` </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4wLjciLCJ1cGRhdGVkSW5WZXIiOiI0My4xNjAuMSIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6W119-->
Update dependency icalendar to v7
All checks were successful
Python formatting PEP8 / Python-PEP8 (push) Successful in 11s
Test / test (pull_request) Successful in 15s
Renovate / forgejo (push) Successful in 18s
Test / test (push) Successful in 15s
9eeba8a7a0
renovate-bot force-pushed renovate/icalendar-7.x from 9eeba8a7a0
All checks were successful
Python formatting PEP8 / Python-PEP8 (push) Successful in 11s
Test / test (pull_request) Successful in 15s
Renovate / forgejo (push) Successful in 18s
Test / test (push) Successful in 15s
to f9ee320393
All checks were successful
Python formatting PEP8 / Python-PEP8 (push) Successful in 11s
Renovate / forgejo (push) Successful in 16s
Test / test (push) Successful in 15s
Test / test (pull_request) Successful in 16s
2026-02-13 17:00:57 +01:00
Compare
renovate-bot force-pushed renovate/icalendar-7.x from f9ee320393
All checks were successful
Python formatting PEP8 / Python-PEP8 (push) Successful in 11s
Renovate / forgejo (push) Successful in 16s
Test / test (push) Successful in 15s
Test / test (pull_request) Successful in 16s
to 8de2d499d7
All checks were successful
Python formatting PEP8 / Python-PEP8 (push) Successful in 11s
Renovate / forgejo (push) Successful in 18s
Test / test (push) Successful in 15s
Test / test (pull_request) Successful in 15s
2026-02-18 01:00:29 +01:00
Compare
renovate-bot force-pushed renovate/icalendar-7.x from 8de2d499d7
All checks were successful
Python formatting PEP8 / Python-PEP8 (push) Successful in 11s
Renovate / forgejo (push) Successful in 18s
Test / test (push) Successful in 15s
Test / test (pull_request) Successful in 15s
to 674a0ee98b
All checks were successful
Python formatting PEP8 / Python-PEP8 (push) Successful in 11s
Renovate / forgejo (push) Successful in 18s
Test / test (push) Successful in 16s
Test / test (pull_request) Successful in 16s
2026-04-07 02:00:34 +02:00
Compare
renovate-bot force-pushed renovate/icalendar-7.x from 674a0ee98b
All checks were successful
Python formatting PEP8 / Python-PEP8 (push) Successful in 11s
Renovate / forgejo (push) Successful in 18s
Test / test (push) Successful in 16s
Test / test (pull_request) Successful in 16s
to 7d56176943
All checks were successful
Python formatting PEP8 / Python-PEP8 (push) Successful in 11s
Renovate / forgejo (push) Successful in 22s
Test / test (pull_request) Successful in 17s
Test / test (push) Successful in 16s
2026-05-01 06:01:19 +02:00
Compare
All checks were successful
Python formatting PEP8 / Python-PEP8 (push) Successful in 11s
Renovate / forgejo (push) Successful in 22s
Test / test (pull_request) Successful in 17s
Test / test (push) Successful in 16s
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/icalendar-7.x:renovate/icalendar-7.x
git switch renovate/icalendar-7.x

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch master
git merge --no-ff renovate/icalendar-7.x
git switch renovate/icalendar-7.x
git rebase master
git switch master
git merge --ff-only renovate/icalendar-7.x
git switch renovate/icalendar-7.x
git rebase master
git switch master
git merge --no-ff renovate/icalendar-7.x
git switch master
git merge --squash renovate/icalendar-7.x
git switch master
git merge --ff-only renovate/icalendar-7.x
git switch master
git merge renovate/icalendar-7.x
git push origin master
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
finn/reminder!129
No description provided.