diff --git a/apps/calendar/apps/web/src/lib/components/event/QuickEventOverlay.svelte b/apps/calendar/apps/web/src/lib/components/event/QuickEventOverlay.svelte index 8994167fa..a8ef21281 100644 --- a/apps/calendar/apps/web/src/lib/components/event/QuickEventOverlay.svelte +++ b/apps/calendar/apps/web/src/lib/components/event/QuickEventOverlay.svelte @@ -4,6 +4,7 @@ import { settingsStore } from '$lib/stores/settings.svelte'; import { contactsStore } from '$lib/stores/contacts.svelte'; import RecurrenceEditDialog from './RecurrenceEditDialog.svelte'; + import RecurrenceSelector from './RecurrenceSelector.svelte'; import type { LocationDetails, CalendarEvent, @@ -209,6 +210,8 @@ let locationCountry = $state(''); let submitting = $state(false); let showRecurrenceDialog = $state(false); + let recurrenceRule = $state(null); + let recurrenceEndDate = $state(null); // People state let responsiblePerson = $state(null); @@ -261,6 +264,14 @@ responsiblePerson = event.metadata?.responsiblePerson || null; attendees = event.metadata?.attendees || []; + // Initialize recurrence + recurrenceRule = event.recurrenceRule || null; + recurrenceEndDate = event.recurrenceEndDate + ? typeof event.recurrenceEndDate === 'string' + ? event.recurrenceEndDate + : event.recurrenceEndDate.toISOString() + : null; + // Initialize time fields const eventStart = toDate(event.startTime); const eventEnd = toDate(event.endTime); @@ -568,6 +579,8 @@ isAllDay, description: description.trim() || undefined, location: location.trim() || undefined, + recurrenceRule: recurrenceRule || undefined, + recurrenceEndDate: recurrenceEndDate || undefined, metadata, }; @@ -922,6 +935,30 @@ {/if} + +
+
+ + + +
+
+ { + recurrenceRule = rule; + recurrenceEndDate = endDate; + }} + /> +
+
+