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() {