./time/py-icalendar, Python parser/generator for iCalendar files, as per RFC2445

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 7.0.3, Package name: py313-icalendar-7.0.3, Maintainer: mj

The iCalendar package is a parser/generator of iCalendar files for
use with Python. It follows the RFC 2445 (iCalendar) specification

The package can both generate and parse iCalendar files, and can
easily be used as is.

The aim is to make a package that is fully compliant to RFC 2445,
well designed, simple to use and well documented.


Required to run:
[devel/py-setuptools] [time/py-dateutil] [time/py-pytz] [lang/python310]

Master sites:

Filesize: 433.387 KB

Version history: (Expand)


CVS history: (Expand)


   2026-03-06 14:07:55 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message: py-icalendar: updated to 7.0.3 7.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 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 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 
   2026-02-25 14:50:38 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message: py-icalendar: updated to 7.0.2 7.0.2 Minor changes Show required code changes in the CI output to help contributors solve the \ formatting issues. Use ruff 0.15.0 for code formatting in tox.ini. New features Enabled Calendar.from_ical to read calendars from files. Added Calendar.journals property to retrieve all journal components. Documentation Removed methods of str, int, and other classes and methods in the Python \ standard library from the documentation. 
   2026-02-22 12:18:11 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message: py-icalendar: update to 7.0.1. Minor changes Setting calendar_name now also writes X-WR-CALNAME, and setting description \ now also writes X-WR-CALDESC, for improved client compatibility. #918 Bug fixes Make typing_extensions a dependency. #1202 Documentation Fixed the version switcher on Read the Docs, and documented the process for \ a major release. #1194 Added usage examples for reading calendars from files and URL. #756 
   2026-02-16 12:15:47 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message: py-icalendar: update to 7.0.0. 7.0.0 (2026-02-11) Minor changes Created an example() method for the Todo component. See #743. Created an example() method for the Alarm component. See #743. Move property classes from icalendar.prop into their own files with sub-packages icalendar.prop.recur and icalendar.prop.dt. See #987. Move classes and functions in icalendar.parser into their own files. See #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. See #432. Reorganized custom component tests into a dedicated test_custom_components.py file with expanded test coverage for Component.from_ical, Calendar.from_ical, and ComponentFactory usage. See #433. The typing-extensions dependency on Python < 3.13 is now optional, part of the test extra. The 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 pyproject.toml. #906 Add type hints to internal helper functions. #938 Add type hints to prop value classes (vBoolean, vFloat, vUri, vBinary, vInline). #938 Add type hints to remaining prop value classes (vText, vCalAddress, vCategory, vGeo, vN, vOrg, vAdr, vBroken, vUid, Conference, Image). #938 Added type hints and overloads to Calendar.from_ical and Component.from_ical to support multiple=True/False return types. #1129 CI: Print a link to Vale documentation when the spell checker fails. Remove bootstrap.py and buildout.cfg files as they are old build configurations. #1171 Enforce ruff formatting and linting across the entire codebase, with CI check to prevent regressions. See #672, #1171, #1172, #1173, #1174, #1175, #1176, #1177, #1178, #1179, #1180, and #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. #1185 Rename vBrokenProperty to vBroken to match naming convention. vBroken now stores the actual exception object in parse_error instead of a string, and raises BrokenCalendarProperty when accessing attributes like .dt that the expected type would have. See #1087. Breaking changes Drop support for Python 3.8 and 3.9. See #977. DURATION_REGEX moved from icalendar.prop to icalendar.prop.dt.duration. See #987. WEEKDAY_RULE moved from icalendar.prop to icalendar.prop.recur.weekday. See #987. Removed tzid_from_dt and tzid_from_tzinfo from icalendar.prop as they exist in icalendar.timezone. See #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. See #987. New features Added recursive parameter to Component.copy() to control copying of subcomponents and properties. #899 Event components now have error-tolerant property parsing. Properties with parsing errors fall back to vBroken, preserving the raw value and allowing access to other valid properties. Errors are recorded in component.errors. Partially addresses #158. Added AdrFields and NFields named tuples for structured access to vCard ADR and N property fields. The fields attribute and from_ical() return value of vAdr and 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 vOrg for convenient access to the organization name and organizational units. Added ical_value property to all three classes. See #1060. Added with_uid method to Component to filter subcomponents by UID. See #950. Enforce linting of code with Ruff in CI. #672 Bug fixes Fixed 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 uuid.uuid4() if None, but the implementation did not generate it. See #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). See #1073. Fixed icalendar.caselessdict.CaselessDict.__eq__() to return NotImplemented when comparing with non-dict types instead of raising AttributeError. See #1016. Fixed decoding of categories. See #279. Link timedelta to datetime.timedelta in the Python standard library documentation. See #951. Fix round-trip parsing of vCategory (CATEGORIES property) when category values contain commas. Categories like 'Meeting, John' now correctly survive round trips between Component.to_ical and Component.from_ical instead of being split into multiple categories. Added split_on_unescaped_comma() helper function. See #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 split_on_unescaped_semicolon() helper function and vAdr, vN, vOrg property types. See #137. Fix Image.from_property_value to raise TypeError instead of AttributeError when value.params isn't valid (most notably, isn't dict-like). #909 Documentation Improved docstrings and formatting for the AlarmTime class. #1072 Added how-to guide for handling parsing errors with vBroken and the component.errors attribute. See #1085. Updated 11 function docstrings in icalendar.parser to follow the Google Style guide, improving API documentation clarity and consistency. See #1072. Applied Google-style docstrings to icalendar.tools utility functions with Args, Returns, and Example sections. See #1072. Simplify contributors and add supporters in credits. See #1035. Add a section in the change log for Documentation. See #1043. Fixed multiple more than one target found for cross-reference warnings, and stopped using sphinx.ext.autosectionlabel, in documentation. See #952. Add funding.json manifest for funding information. See #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. See #952. Document how to create and read attendee information in events. See #130. Add usage examples. #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. See #991. Document dictionary and property accessors. #124. Moved content from the README into documentation to reduce maintenance and point to the authoritative source of information. See #1006. Added "Code conventions" section to the Development contributing guide. See #1004. Use Google style docstrings in parser_tools. See #1017. Document compatibility of icalendar with RFCs. See #1147. Added Upgrade guide. See #997. Fixed links in jCal usage documentation. Enable sphinx-issues extension. #1091 Replaced "Arguments" and "Args" with \ "Parameters". #1076 Added documentation of how to set up a development environment with git. #906 Documented how to install and use pre-commit. #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. #1080 Documented __init__ methods. #1079 Moved "Edit this page" link to above the page table of contents. #1106 Added Good First Issue link and fixed Up For Grabs link in Contribute guide. #1095 Updated CONTRIBUTING.rst to explicitly state not to use Args sections in docstrings. #1076 Document vInt.__new__ method parameters in class docstring with RFC 5545 examples. #1118 Improved make vale command to provide guidance on failure or success. #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 API Reference. See smartquotes_action. Fix incorrect return type annotation in Component.from_ical. #1141 Fixed broken links in docs/how-to/usage.rst documentation. Part of #1158 Enhanced the first-time contributors section, in hopes that fewer contributors ask permission before starting work. #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(). #994 Configured Sphinx to append the docstring from the __init__ method into its class docstring. #1156 7.0.0a3 (2025-12-19) Minor changes Add static [project.urls] to pyproject.toml for GitHub dependency graph compatibility. See #1035. Created an example() method for the Todo component. See #743. Add type hints to icalendar.caselessdict file. See #938. For releases, added a step to update the version switcher for documentation. New features Added contributor list format and sorting instructions. Bug fixes Fix double-unescaping in vText.from_ical() and vCategory.from_ical() by removing unescape_char(). See #1008. 7.0.0a2 (2025-11-29) Minor changes Convert changelog section labels to reStructuredText subheadings for improved Read the Docs navigation. See #982. Move sections in Table of Content of Reference guide. Improve icalendar.prop.vDatetime documentation. See #946. CLI now writes output files using UTF-8 explicitly instead of relying on the system default. See #1005. New features Add compatibility to RFC 9253:	Add new property types vUid and vXmlReference.	Add properties to all components: Component.concepts,	Component.links, Component.refids, Component.related_to.	Add new values to RELTYPE.	Add LABEL, GAP, and VALUE parameters to property values	affected by RFC 9253. Allow setting default values in Parameters. Allow None as an argument to Parameters. Add ical_value to several property values. See #876. Add PyData Theme version switcher to documentation. See #825. Test compatibility with Python 3.14. See #973. Added documentation of Vale usage for icalender documentation style guide. See #815. Added funding link to pyproject.toml. See #800. Added documentation of docstring format. See #747. Add TypeAlias icalendar.VPROPERTY as a type for all properties. Allow access to icalendar.TypesFactory via icalendar.TypesFactory.instance(). Classes in icalendar.prop can all be initialized with parameters now. Allow passing icalendar.vDDDTypes as arguments to icalendar.vDDDLists. Add support for datetime.timezone identification. Add icalendar.is_utc() to check if a timezone is UTC. Add support for JCal parsing and serialization. See #978.	Add icalendar.JCalParsingError exception for jCal parsing.	Add icalendar.Parameters.tzid and icalendar.Parameters.is_utc()	for timezone handling.	Add icalendar.vUnknown which is the default now for unknown	properties and the same as icalendar.vText.	Add icalendar.ComponentFactory.get_component_class() that	also creates a new component class when it does not exist.	Add icalendar.ComponentFactory.add_component_class() to	have a unified interface to add component classes.	Add icalendar.Component.to_json(), icalendar.Component.to_jcal(),	and icalendar.Component.from_jcal() methods so all components	can be serialized and parsed.	Classes in icalendar.prop receive the following updates: Add to_jcal and from_jcal for serialization. Add default_value class attribute for the default VALUE parameter. Add VALUE parameter property. Add examples() classmethod that returns examples for testing. Added documentation of how to fuzz icalendar. See #905. Added first-time contributors section to Contributing. See #934. Revised check of which files trigger a documentation build on Read the Docs. See #848. Created a separate path to contribute to documentation. See #929. Added a code of conduct. See #907. Added redirects of moved files and 404 not found page to catch any other obsolete URLs. See #959. Added artificial intelligence (AI) policy. See #933. Bug fixes Correct name of AVAILABLE component. Fix ical serialization of icalendar.vTime. Make sure a component's conferences property adds VALUE=URI if the conference is created as a URI. Fix CLI deprecated argparse.FileType usage and remove PendingDeprecationWarning. See #1005. 
   2025-11-10 10:38:26 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message: py-icalendar: update to 6.3.2. Minor changes: Add PyData Theme version switcher to documentation. See Issue 825. 
   2025-05-21 09:34:52 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message: py-icalendar: updated to 6.3.1 6.3.1 Bug fixes: Remove forced quoting from parameters with space and single quote. 
   2025-05-18 12:04:38 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message: py-icalendar: update to 6.3.0. 6.3.0 (2025-05-15) Minor changes: Deprecate icalendar.UIDGenerator. See Issue 816. New features: Add the uid property to Alarm, Event, Calendar, Todo, and Journal \ components. See Issue 740. Bug fixes: Fix component equality where timezones differ for the datetimes but the \ times are actually equal. See Issue 828. Test that we can add an RRULE as a string. See Issue 301. Test that we support dateutil timezones as outlined in Issue 336. Build documentation on Read the Docs with the version identifier. See Issue 826. 
   2025-05-11 12:30:44 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message: py-icalendar: update to 6.2.0. 6.2.0 (2025-05-07) Minor changes: Use ruff to format the source code. Update project metadata to use License-Expression. Use tzp.localize(dt, None) to remove the timezone from a datetime. Remove the HTML documentation when building with tox to force rebuild. Switch to PyData Sphinx Theme for documentation. See Issue 803. New features: Add getters rrules, rdates, and exdates for unified and simple access to \ these properties. See Issue 662. Add attributes to the calendar for properties NAME, DESCRIPTION, and COLOR. \ See Issue 655. Add a color attribute to Event, Todo, and Journal components. See Issue 655. Add sequence attribute to Event, Todo, and Journal components. See Issue 802. Add categories attribute to Calendar, Event, Todo, and Journal components. \ See Issue 655. Add compatibility to RFC 6868. See Issue 652. Add freebusy property to the Calendar to get this type of subcomponents easier. Add parameters from RFC 5545 to properties ALTREP, CN, CUTYPE, \ DELEGATED_FROM, DELEGATED_TO, DIR, FBTYPE, LANGUAGE, MEMBER, PARTSTAT, RANGE, \ RELATED, ROLE, RSVP, SENT_BY, TZID, and RELTYPE. See Issue 798. New properties from RFC 7986 can occur multiple times in VCALENDAR. See PR 808. Bug fixes: Fix STANDARD and DAYLIGHT components that have a date as DTSTART. See Issue 218 Move import at the end of icalendar.parser into a function to mitigate \ import errors, see Issue 781. ALTREP, DELEGATED-FROM, DELEGATED-TO, DIR, MEMBER, and SENT-BY require \ double quotes. These are now always added. Classify CATEGORIES as multiple in VEVENT. See PR 808.