https://bugs.kde.org/show_bug.cgi?id=447966

Ferenc Lengyel <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]

--- Comment #2 from Ferenc Lengyel <[email protected]> ---
Still present with Merkuro 26.08.1, KCalendarCore 6.30.0 (Arch/CachyOS). Not
specific to the DAV resource: reproduced with an Akonadi iCal file resource
subscribed to a Google Calendar public .ics feed.

Data: a weekly series (RRULE:FREQ=WEEKLY;BYDAY=MO, 16:00) with one exception,
RECURRENCE-ID 2026-10-26T16:00 Europe/Budapest, DTSTART 2026-10-13T09:00.
Akonadi stores the exception as its own item and it is correct in
akonadiconsole.

Observed in Merkuro: the moved occurrence is missing on 13 October from the
week, work week, 3-day and day views. It appears in the October month view,
because that view's range also contains 26 October.

Cause: KCalendarCore OccurrenceIterator, setupIterator() in
src/occurrenceiterator.cpp:
https://invent.kde.org/frameworks/kcalendarcore/-/blob/2ad30ad3a286d90f84bdd963a9ea905701d82de9/src/occurrenceiterator.cpp#L104-162

Incidences with a RECURRENCE-ID are skipped at the top of the loop. Exceptions
are added back only while expanding the parent's
recurrence->timesInInterval(start, end), matched by RECURRENCE-ID. So an
exception is emitted only when its original date is inside the requested range.
One moved into the range from outside it is never returned.

Merkuro's IncidenceOccurrenceModel uses OccurrenceIterator for all its views,
which explains the difference between the month view and the others. Same
symptom as bug 328585 (KOrganizer agenda view, closed as unmaintained) and
probably bug 507088.

Suggested product/component: frameworks-kcalendarcore.

Possible fix: after expanding the parent, also check the parent's exceptions
(calendar.instances(inc)) that were not matched, and emit the ones whose own
DTSTART/DTEND overlaps [start, end].

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to