Scheduler - Recurring Events
Render recurring event series in week and month views.
#Usage
import { Scheduler } from '@primeui/vue-scheduler';<Scheduler.Root :events="events" :recurrence-edit="recurrenceEdit" @event-change="onEventChange" @recurrence-edit="onRecurrenceEdit">
<!-- Scheduler parts -->
</Scheduler.Root>Recurring events are managed from the root event data and recurrence-editing callbacks. Persist accepted changes through event-change and use recurrence-edit when the app needs to choose the edit scope.
#Recurrence Options
recurrenceEdit can be true for the default flow or a partial recurrence edit options object when the page controls scope choices.
import type { RecurrenceEditOptions } from '@primeui/vue-scheduler';
const recurrenceEdit: Partial<RecurrenceEditOptions> = {
editModes: ['this', 'future', 'all'],
dragMode: 'ask',
resizeMode: 'ask'
};#Recurrence Expansion
Recurring events expand into timed week columns and all-day rows from the source recurrence rule.
#Month Recurrence
Recurring month events can show repeat markers from event data while Scheduler still owns occurrence expansion. Duplicating the expansion logic in application code is unnecessary.
#Persistence
Persist the series and exceptions, not the expanded visible copies. When a user edits one occurrence, save an exception keyed by the occurrence date. When a user edits the whole series, update the source event. The next render regenerates the instances.
Drag, resize, quick-info edit, and inline edit flows should ask for recurrence scope when a changed event belongs to a series. Use @recurrence-edit and @recurrence-delete payloads when the save flow needs the chosen scope. If the backend cannot represent exceptions, disable single-occurrence edits or convert the occurrence to a standalone event on purpose.
#API
Key fields are rrule, exdate, rdate, recurrenceId, start, end, allDay, event identity fields, recurrenceEdit, @recurrence-edit, @recurrence-delete, and the same event payloads used by click, drop, and resize events.