From 7c127d8183bd29dd54527b7f36a0fe8b26b04a95 Mon Sep 17 00:00:00 2001 From: andreawoe Date: Mon, 24 Aug 2026 13:34:00 +0200 Subject: [PATCH] fix(calendar): treat empty-string recurrenceId as non-recurring when editing --- app/(main)/[locale]/calendar/page.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/(main)/[locale]/calendar/page.tsx b/app/(main)/[locale]/calendar/page.tsx index 23eaebbd..b39f2796 100644 --- a/app/(main)/[locale]/calendar/page.tsx +++ b/app/(main)/[locale]/calendar/page.tsx @@ -71,7 +71,10 @@ type PendingScopeAction = | { type: "delete"; event: CalendarEvent; sendScheduling?: boolean }; function isRecurringEvent(event: CalendarEvent): boolean { - return (event.recurrenceRules?.length ?? 0) > 0 || event.recurrenceId != null; + // Stalwart may return an empty-string `recurrenceId` for non-recurring events + // rather than null; treat that as non-recurring so editing doesn't route + // through the recurrence-scope flow for a plain single event. + return (event.recurrenceRules?.length ?? 0) > 0 || Boolean(event.recurrenceId); } export default function CalendarPage() {