Skip to content

iCalendar import: group RECURRENCE-ID overrides by UID #88

@eikopf

Description

@eikopf

Context

Per draft-ietf-calext-jscalendar-icalendar-22, when multiple VEVENT (or VTODO) components share the same UID, the one without RECURRENCE-ID is the base recurrence and those with RECURRENCE-ID are overrides. The overrides should be merged into the base object's recurrenceOverrides property as PatchObjects keyed by the RECURRENCE-ID value.

Current behaviour

Each VEVENT/VTODO component is translated independently into a separate entry record, regardless of UID. A recurring event with three overrides produces four independent entries rather than one entry with an recurrenceOverrides map.

Expected behaviour

During iCalendar import, components sharing a UID should be grouped:

  • The component without RECURRENCE-ID becomes the base entry
  • Components with RECURRENCE-ID become entries in the base's recurrence_overrides map, keyed by the recurrence-id datetime value
  • The override entries should contain only the properties that differ from the base (PatchObject semantics), or at minimum the full override record

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions