feat: support safe recurrence additions
Parse, persist, expand, and round-trip compatible RDATE values while preserving whole-series TUI behavior and conservative rewrite guards. Verified: normal, warning-as-error, and ASan/UBSan builds pass all 9 suites; storage failure paths preserve calendar and backup bytes; live PTY restores terminal state.
This commit is contained in:
11
README.md
11
README.md
@@ -75,8 +75,10 @@ source that fails event validation or that Nocal cannot safely round-trip.
|
||||
|
||||
Nocal expands and safely round-trips a focused iCalendar recurrence subset:
|
||||
daily, weekly, monthly, and yearly rules with interval, count or until, common
|
||||
weekly/monthly/yearly selectors, `EXDATE`, floating times, UTC, and system IANA
|
||||
`TZID` names. Recurring instances are individually navigable; edit and delete
|
||||
weekly/monthly/yearly selectors, compatible DATE or DATE-TIME `RDATE` additions,
|
||||
`EXDATE`, floating times, UTC, and system IANA `TZID` names. Occurrences merge
|
||||
`DTSTART`, rule expansion, and `RDATE`, remove duplicate starts, and then apply
|
||||
`EXDATE`. Recurring instances are individually navigable; edit and delete
|
||||
clearly operate on the entire series.
|
||||
|
||||
Search expands recurring matches within five years on either side of the
|
||||
@@ -88,8 +90,9 @@ agenda, appointment focus, and search. Visibility and agenda position are
|
||||
session-only presentation state; saves always retain events from hidden
|
||||
calendars.
|
||||
|
||||
Calendars containing features this version cannot preserve—such as `RDATE`,
|
||||
detached recurrence overrides, ordinal `BYDAY`, embedded `VTIMEZONE`
|
||||
Calendars containing features this version cannot preserve—such as `RDATE`
|
||||
periods or values incompatible with the event's `DTSTART` time basis or `TZID`,
|
||||
detached `RECURRENCE-ID` overrides, ordinal `BYDAY`, embedded `VTIMEZONE`
|
||||
definitions, alarms, or attendees—remain browsable but read-only. This guard
|
||||
prevents a local edit from silently discarding unknown data.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user