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;