From 5c2e6377a22a5d5059853a95086b6afae29c2533 Mon Sep 17 00:00:00 2001 From: David Greaves Date: Fri, 4 Jul 2025 09:28:50 +0100 Subject: [PATCH] Don't limit expansion range using EXDATE Any EXDATE values specify single instances that must be removed from the expanded set of DTSTART values Signed-off-by: David Greaves --- radicale/app/report.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/radicale/app/report.py b/radicale/app/report.py index 89313c53..0e46185e 100644 --- a/radicale/app/report.py +++ b/radicale/app/report.py @@ -360,15 +360,13 @@ def _expand( elif hasattr(vevent_recurrence, "duration"): duration = vevent_recurrence.duration.value - # Handle EXDATE to limit expansion range + # Generate EXDATE to remove from expansion range if hasattr(vevent_recurrence, 'exdate'): exdates = vevent_recurrence.exdate.value if not isinstance(exdates, list): exdates = [exdates] logger.debug("EXDATE values: %s", exdates) - latest_exdate = max(exdates) if exdates else None - if latest_exdate and end > latest_exdate: - end = min(end, latest_exdate) + # TODO: these exdate values are not removed from the expanded set rruleset = None if hasattr(vevent_recurrence, 'rrule'): @@ -409,6 +407,8 @@ def _expand( logger.debug("Recurrence %s filtered out by time-range", recurrence_utc) continue + # Check here for exdate + # Check for overridden instances i_overridden, vevent = _find_overridden(i_overridden, vevents_overridden, recurrence_utc, dt_format)