Revision history for Perl extension Text::JSCalendar
0.05 2026-05-11
- jscalendarbis-15 (draft-ietf-calext-jscalendarbis-15) compliance:
- recurrenceRule is now a singular object (not the RFC 8984 plural array)
- Add organizerCalendarAddress top-level property; remove replyTo
- Add endTimeZone top-level Event property
- Remove useDefaultAlerts (and X-APPLE-DEFAULT-ALARM handling)
- Add version: "2.0" to all parsed events
- Rename byDate -> byMonthDay in RecurrenceRule
- Fix firstDayOfWeek default "monday" -> "mo"
- Restructure alerts: flat {action,relativeTo,offset} ->
{action, trigger: OffsetTrigger/AbsoluteTrigger}; restore action field
- Fix TRIGGER RELATED=END: written as parameter on TRIGGER not standalone property
- Rename links[*].type -> contentType; remove links[*].cid
- Link.display type changed to String[Boolean]
- Location: remove description, relativeTo, timeZone sub-properties
- VirtualLocation: remove description sub-property
- Participant: sendTo -> calendarAddress (single URI string)
- Participant: kind default changed to "individual"
- Participant: remove language; add description, descriptionContentType,
progressUpdated, links
- Participants roles: String[Boolean] map (was String[] array)
- privacy: CLASS:CONFIDENTIAL now maps to "secret"
- task.progress: use "in-process" (correct JSCalendar value)
- Add excludedRecurrenceRules support (EXRULE) and remove again: jscalendarbis
drops excludedRecurrenceRules entirely; exclusions via recurrenceOverrides only
- Add @type to RecurrenceRule, NDay, Relation, VirtualLocation, Location sub-objects
- relatedTo: type changed from keywords to object (with Relation sub-schema)
- Remove isAllDay (replaced by showWithoutTime)
- Remove endTimeZone that was removed in 0.04 draft work, then re-added
- Remove lastModified (use updated instead)
- Remove organizerCalendarAddress that was removed in 0.04 draft work, then re-added
0.04 2026-05-11
- RFC 8984 compliance fixes (superseded by 0.05 jscalendarbis work):
- Remove isAllDay (replaced by showWithoutTime)
- Rename recurrenceRule to recurrenceRules (array per RFC 8984)
- Remove endTimeZone (not in RFC 8984)
- Remove lastModified (use updated instead)
- Remove organizerCalendarAddress (use participants with role=owner)
- Replace attendance field with roles (optional/informational) in participants
0.03 2026-04-05
- Update for latest JSCalendar drafts (jscalendarbis,
jscalendar-icalendar, icalendar-jscalendar-extensions)
- Add virtualLocations (CONFERENCE property)
- Add endTimeZone (replaces locations[end] hack)
- Add GEO -> locations[].coordinates
- Fix privacy/CLASS property bug
- Add priority, color, lastModified generation
- Add STYLED-DESCRIPTION -> descriptionContentType
- Add showWithoutTime alongside isAllDay
- freeBusyStatus is now a string (was boolean showAsFree)
- Add organizerCalendarAddress
- Add IMAGE -> links, binary ATTACH -> data: URI
- Add VTODO/Task support
- Add participant scheduleAgent, delegatedFrom/To, ROLE=OWNER
- @type updated to Event/Task per JSCalendar bis
- Add Cyrus CalDAV/JMAP integration tests
0.02 2019-03-24
- add tests
- fix up participation status
- heaps of bugfixes (but plenty more known incompleteness)
0.01 2019-02-09
- original release