From 6fdbe3ab67bba7de26fcb047de5547e0ce9c6d3a Mon Sep 17 00:00:00 2001 From: G30 <50341825+silentoplayz@users.noreply.github.com> Date: Fri, 25 Sep 2026 23:27:40 -0400 Subject: [PATCH] fix: move a calendar event's end with its date instead of keeping the old end date (#31303) --- .../components/calendar/CalendarEventModal.svelte | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/lib/components/calendar/CalendarEventModal.svelte b/src/lib/components/calendar/CalendarEventModal.svelte index 75237d9323..cf92306f79 100644 --- a/src/lib/components/calendar/CalendarEventModal.svelte +++ b/src/lib/components/calendar/CalendarEventModal.svelte @@ -28,6 +28,7 @@ let startDate = ''; let startTime = ''; let endDate = ''; + let endDayOffset = 0; let endTime = ''; let allDay = false; let location = ''; @@ -111,6 +112,12 @@ alertMinutes = 10; repeatFrequency = ''; } + endDayOffset = endDate + ? Math.round( + (dateTimeToNs(endDate, '12:00') - dateTimeToNs(startDate, '12:00')) / + (24 * 60 * 60 * 1000 * NS) + ) + : 0; } $: if (show) reset(); @@ -129,7 +136,12 @@ loading = true; try { const startNs = dateTimeToNs(startDate, allDay ? '00:00' : startTime); - let endNs = endDate ? dateTimeToNs(endDate, allDay ? '23:59' : endTime) : undefined; + const shiftedEndDate = endDate + ? nsToDateStr(dateTimeToNs(startDate, '12:00') + endDayOffset * 24 * 60 * 60 * 1000 * NS) + : ''; + let endNs = shiftedEndDate + ? dateTimeToNs(shiftedEndDate, allDay ? '23:59' : endTime) + : undefined; if (endNs !== undefined && endNs < startNs) { const duration = event?.end_at && event.end_at > event.start_at ? event.end_at - event.start_at : 0;