Changes for version 0.08 - 2026-10-22

  • security: recurrenceOverrides patches could rewrite top-level-only properties when writing iCalendar, e.g. "uid" (exception emitted under a foreign UID, splitting the series), "@type" (a VTODO in a VEVENT's recurrence set) or "recurrenceRule"; such patches are now ignored, as they already were when reading iCalendar
  • security: strip control characters from iCalendar output; a CR or LF in any field written as a property parameter (participant name, descriptionContentType, locale, link title, ...), or a lone CR in a value, could split the content line and forge extra properties
  • top-level-only properties updated to jscalendarbis-21: add @type, privacy, sentBy, recurrenceId, recurrenceIdTimeZone and participants/*/calendarAddress; relatedTo may now be overridden
  • a synthetic master built from orphan exceptions now has @type and version, so neither turns up as a patch in every override
  • write an ATTENDEE for every participant with a calendarAddress, as jscalendarbis has no "attendee" role; a participant that the ORGANIZER fully represents is still left out
  • a change inside an object in a recurrence exception is now a nested patch (e.g. one attendee's participationStatus) rather than a copy of the whole object

Documentation

autogenerated timezone data for ME::CalDAVTalk

Modules

autogenerated timezone data for Text::JSCalendar