applyRecurrenceOverrides
Function: applyRecurrenceOverrides()
applyRecurrenceOverrides(
newStartAt,originalRecurrence,inputRecurrence?):object
Defined in: src/utilities/recurringEventHelpers.ts:340
Applies calendar-style override logic for recurring event updates. This function implements the following rules:
- If startAt is provided and byDay is not specified in recurrence, derive byDay from the new startAt day of week
- If byDay is explicitly provided in recurrence, use it as-is
- For monthly/yearly events, similar logic applies to byMonthDay/byMonth
Parameters
newStartAt
The new start time for the event (if provided)
Date | undefined
originalRecurrence
Pick<typeof recurrenceRulesTable.$inferSelect, "frequency" | "interval" | "recurrenceEndDate" | "count" | "byDay" | "byMonth" | "byMonthDay">
The original recurrence rule from the database
inputRecurrence?
The recurrence input from the user (if provided)
byDay?
string[] = ...
byMonth?
number[] = ...
byMonthDay?
number[] = ...
count?
number = ...
endDate?
Date = ...
frequency
"DAILY" | "WEEKLY" | "MONTHLY" | "YEARLY" = recurrenceFrequencyEnum
interval?
number = ...
never?
boolean = ...
Returns
object
The updated recurrence configuration with proper overrides applied
byDay?
optionalbyDay:string[]
byMonth?
optionalbyMonth:number[]
byMonthDay?
optionalbyMonthDay:number[]
count?
optionalcount:number
endDate?
optionalendDate:Date
frequency
frequency:
"DAILY"|"WEEKLY"|"MONTHLY"|"YEARLY"=recurrenceFrequencyEnum
interval?
optionalinterval:number
never?
optionalnever:boolean