Might be running into an edge case around modified occurrences of recurring events (RECURRENCE-ID). When I modify a single occurrence of a recurring event in Apple Calendar (e.g., reschedule one meeting), that change doesn't sync to my app - the modified occurrence either doesn't appear or shows at the original time.
Scenario:
- User has a recurring event in iCloud (e.g., "Weekly Team Meeting" every Sunday at 10am)
- User modifies ONE occurrence in Apple Calendar (e.g., moves Dec 8th's meeting to Dec 9th at 2pm)
- iCloud stores this as two VEVENTs in the same .ics file
Main recurring event
BEGIN:VEVENT
UID:event-123
DTSTART:20241201T100000Z
RRULE:FREQ=WEEKLY;BYDAY=SU
SUMMARY:Weekly Meeting
END:VEVENT
Modified occurrence (same UID, but with RECURRENCE-ID)
BEGIN:VEVENT
UID:event-123
RECURRENCE-ID:20241208T100000Z ← identifies which occurrence
DTSTART:20241209T140000Z ← new date/time
SUMMARY:Weekly Meeting (rescheduled)
END:VEVENT
- When fetching via dav4jvm's calendarQuery(): The modified instance (RECURRENCE-ID event) either:
- Wasn't returned at all (0 events for that query)
- Was returned but dav4jvm's response handling didn't expose it correctly
- The callback wasn't invoked for the second VEVENT in the same file
5. When fetching via raw HTTP REPORT: Both VEVENTs are returned in the XML response
Might be running into an edge case around modified occurrences of recurring events (RECURRENCE-ID). When I modify a single occurrence of a recurring event in Apple Calendar (e.g., reschedule one meeting), that change doesn't sync to my app - the modified occurrence either doesn't appear or shows at the original time.
Scenario:
Main recurring event
BEGIN:VEVENT
UID:event-123
DTSTART:20241201T100000Z
RRULE:FREQ=WEEKLY;BYDAY=SU
SUMMARY:Weekly Meeting
END:VEVENT
Modified occurrence (same UID, but with RECURRENCE-ID)
BEGIN:VEVENT
UID:event-123
RECURRENCE-ID:20241208T100000Z ← identifies which occurrence
DTSTART:20241209T140000Z ← new date/time
SUMMARY:Weekly Meeting (rescheduled)
END:VEVENT
- Wasn't returned at all (0 events for that query)
- Was returned but dav4jvm's response handling didn't expose it correctly
- The callback wasn't invoked for the second VEVENT in the same file
5. When fetching via raw HTTP REPORT: Both VEVENTs are returned in the XML response