You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Per-instance changes in recurring events are silently dropped. The converter only preserves title, start, duration, and description in recurrence overrides — everything else (participants, locations, alerts, status, keywords) is lost on round-trip.
This means a recurring meeting where one instance has different attendees, a different location, or a modified alert will silently lose those changes. It's a data integrity bug in the core converter.
ical_to_jscal: extend per-child-VEVENT patch to include participants, locations, virtualLocations, alerts, status, keywords, freeBusyStatus
ical_to_jscal: only include properties that differ from the master event
ical_to_jscal: handle properties explicitly removed in an override instance
jscal_to_ical: apply full patch dict to child VEVENT, not just title/start/duration/description
jscal_to_ical: handle null patch values — remove the property from the child VEVENT
Tests: round-trip recurring events with per-instance participant changes, location changes, alert changes, and combined multi-property overrides
Per-instance changes in recurring events are silently dropped. The converter only preserves
title,start,duration, anddescriptionin recurrence overrides — everything else (participants, locations, alerts, status, keywords) is lost on round-trip.This means a recurring meeting where one instance has different attendees, a different location, or a modified alert will silently lose those changes. It's a data integrity bug in the core converter.
ical_to_jscal: extend per-child-VEVENT patch to include participants, locations, virtualLocations, alerts, status, keywords, freeBusyStatusical_to_jscal: only include properties that differ from the master eventical_to_jscal: handle properties explicitly removed in an override instancejscal_to_ical: apply full patch dict to child VEVENT, not just title/start/duration/descriptionjscal_to_ical: handle null patch values — remove the property from the child VEVENT