From 14dd63ad72834f96f6ace24db2b2318adc58f894 Mon Sep 17 00:00:00 2001 From: Marc Koch Date: Mon, 14 Jul 2025 19:54:20 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix:=20declined=20events=20not?= =?UTF-8?q?=20cancelled?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Events were declined but not cancelled what lead to a loop of allready declined events getting declined again in every run. --- src/clear_bookings.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/clear_bookings.py b/src/clear_bookings.py index 2e467e5..82ed837 100644 --- a/src/clear_bookings.py +++ b/src/clear_bookings.py @@ -76,6 +76,7 @@ def clear(target_calendars: list, is_test: bool=False) -> dict: end=date.today() + timedelta(days=horizon), event=True, expand=True, + split_expanded=True, ) events = [] @@ -85,7 +86,7 @@ def clear(target_calendars: list, is_test: bool=False) -> dict: # Delete cancelled non-recurring events if not in test mode if (component.name == "VEVENT" and is_cancelled_event(event) - and not event.is_recurring): + and not is_recurring_event(event)): if not is_test: event.delete() @@ -189,6 +190,8 @@ def clear(target_calendars: list, is_test: bool=False) -> dict: elif not event.is_cancelled: if not is_test: event.obj.decline_invite() + event.obj.icalendar_component["status"] = "CANCELLED" + event.obj.save() is_cancelled = True result["cancellation_type"] = "cancelled" results["cancelled_overlapping_recurring_events"].append(result)