WeeklyEvent
WEEKLY - Recurring events on one or more days every week Supports multiple weekdays, intervals, date range, and date exclusions.
Example
Section titled “Example”// Every Monday{ type: "weekly", id: "standup", dayOfWeek: 1 }
// Every Monday, Wednesday & Friday (like an alarm's "Repeat"){ type: "weekly", id: "logwork", dayOfWeek: [1, 3, 5] }
// Every other Wednesday{ type: "weekly", id: "biweekly-sync", dayOfWeek: 3, interval: 2 }
// Every Friday with date range{ type: "weekly", id: "sprint-review", dayOfWeek: 5, startDate: "2025-01-01", endDate: "2025-12-31" }Extends
Section titled “Extends”BaseEventProperties<TMetadata,TCategory>
Type Parameters
Section titled “Type Parameters”TMetadata
Section titled “TMetadata”TMetadata extends Record<string, unknown> = Record<string, unknown>
Custom metadata type extending Record<string, unknown>
TCategory
Section titled “TCategory”TCategory extends string = string
Properties
Section titled “Properties”allDay?
Section titled “allDay?”
optionalallDay?:boolean
Inherited from
Section titled “Inherited from”categories?
Section titled “categories?”
optionalcategories?:TCategory[]
Inherited from
Section titled “Inherited from”BaseEventProperties.categories
color?
Section titled “color?”
optionalcolor?:string
Inherited from
Section titled “Inherited from”dayOfWeek
Section titled “dayOfWeek”dayOfWeek:
WeekdayIndex|WeekdayIndex[]
Day of the week, or several. 0=Sunday, 1=Monday, ..., 6=Saturday.
A list fires on each selected day every week (ICS BYDAY semantics); with
interval, all selected days share one reference week.
Examples
Section titled “Examples”1 // Monday[1, 3, 5] // Monday, Wednesday, Fridaydescription?
Section titled “description?”
optionaldescription?:string
Inherited from
Section titled “Inherited from”BaseEventProperties.description
duration?
Section titled “duration?”
optionalduration?:number
Inherited from
Section titled “Inherited from”endDate?
Section titled “endDate?”
optionalendDate?:string
End date for the recurrence (ISO format: YYYY-MM-DD)
Example
Section titled “Example”"2025-12-31"Overrides
Section titled “Overrides”endTime?
Section titled “endTime?”
optionalendTime?:string
Inherited from
Section titled “Inherited from”exceptions?
Section titled “exceptions?”
optionalexceptions?:EventExceptions
Per-occurrence exceptions keyed by the event’s ORIGINAL computed date
(YYYY-MM-DD) — maps ICS EXDATE / RECURRENCE-ID. { skip: true } drops
that occurrence; { override } replaces properties for that one instance.
Inherited from
Section titled “Inherited from”BaseEventProperties.exceptions
excludeDates?
Section titled “excludeDates?”
optionalexcludeDates?:string[]
Specific dates to exclude (ISO format: YYYY-MM-DD)
Example
Section titled “Example”["2025-12-25"] // Skip Christmas
optionalicon?:string
Inherited from
Section titled “Inherited from”id:
string
Inherited from
Section titled “Inherited from”interval?
Section titled “interval?”
optionalinterval?:number
Recurrence interval in weeks (default: 1)
Example
Section titled “Example”2 // Every 2 weeks (bi-weekly)keywords?
Section titled “keywords?”
optionalkeywords?:string[]
Inherited from
Section titled “Inherited from”location?
Section titled “location?”
optionallocation?:string
Inherited from
Section titled “Inherited from”metadata?
Section titled “metadata?”
optionalmetadata?:TMetadata
Inherited from
Section titled “Inherited from”onConflict?
Section titled “onConflict?”
optionalonConflict?:ConflictResolver
Conflict resolver for handling events on the same day. Called during event generation to determine action when this event would occur on a specific date.
Default behavior (when not specified): keep all events
Inherited from
Section titled “Inherited from”BaseEventProperties.onConflict
overrideDates?
Section titled “overrideDates?”
optionaloverrideDates?:OverrideDatesMap
Force reschedule dates unconditionally. Unlike onConflict which handles conflicts, this always moves events. Key is the original computed date (YYYY-MM-DD), value is the new date.
Example
Section titled “Example”overrideDates: { "2026-02-18": "2026-02-20", // Move from Feb 18 to Feb 20}Inherited from
Section titled “Inherited from”BaseEventProperties.overrideDates
priority?
Section titled “priority?”
optionalpriority?:number
Display precedence when several events land on the same day, like CSS
z-index: higher = on top, default 0. The core only sorts by this
number (highest first); it assigns no meaning to the values — the consumer
does. Ties keep generation order (stable).
Inherited from
Section titled “Inherited from”reminders?
Section titled “reminders?”
optionalreminders?:Reminder[]
Inherited from
Section titled “Inherited from”source?
Section titled “source?”
optionalsource?:string
Origin of the event — the plugin, feed, or ICS subscription that produced it.
Lets a consumer customize/filter in bulk by source (like toggling a calendar
in Google/Apple Calendar) and namespaces the ICS export UID.
Distinct from groupId (a user-defined group) and sourceEventId (the
originating config id).
Inherited from
Section titled “Inherited from”startDate?
Section titled “startDate?”
optionalstartDate?:string
Start date for the recurrence (ISO format: YYYY-MM-DD) Used as reference point for interval calculation
Example
Section titled “Example”"2025-01-06" // First Monday of 2025Overrides
Section titled “Overrides”startTime?
Section titled “startTime?”
optionalstartTime?:string
Inherited from
Section titled “Inherited from”status?
Section titled “status?”
optionalstatus?:"confirmed"|"tentative"|"cancelled"
Inherited from
Section titled “Inherited from”templates?
Section titled “templates?”
optionaltemplates?:Record<string,string>
Per-occurrence dynamic fields, derived from each occurrence’s date. A map
of fieldName → template, where the template may contain date tokens
({YYYY} {MM} {DD} zero-padded · {M} {D} no padding). Each occurrence
gets the field set to the interpolated value.
Applied during generation, after the base value and before a
per-date exceptions[date].override (which always wins). Typically used for a
date-specific url, but any string field works (title, description,
location, …).
Example
Section titled “Example”// Every Sunday's link points at a date page{ type: "weekly", id: "mass", dayOfWeek: 0, title: "Mass", templates: { url: "https://x.com/mass/{D}-{M}" } }// 2026-07-07 → .../mass/7-7 · 2026-07-14 → .../mass/14-7Inherited from
Section titled “Inherited from”title:
string
Inherited from
Section titled “Inherited from”type:
"weekly"
optionalurl?:string