Skip to content

CalendarDay

Base calendar day - the fundamental unit returned by getDays()

This is the core day structure that plugins can extend via DayEnricher. Contains only universal calendar properties. Clients should handle formatting themselves.

// Default usage
const day: CalendarDay = cal.getDay("2025-12-25");
// With typed metadata
interface LiturgicalMetadata { rank: string; }
const day: CalendarDay<LiturgicalMetadata> = cal.getDay("2025-12-25");
day.events[0].metadata?.rank; // TypeScript knows this exists

TMetadata extends Record<string, unknown> = Record<string, unknown>

Custom metadata type for events

TCategory extends string = string

Category type for events

date: string

Date in YYYY-MM-DD format (derived from year/month/day, for convenience)


day: number

Day of month (1-31)

DateComponents.day


dayOfWeek: number

Day of week (0=Sunday, 1=Monday, …, 6=Saturday)


events: CalendarEvent<TMetadata, TCategory>[]

Events on this day, sorted by priority (highest first; can be empty)


isSunday: boolean

Whether this is a Sunday


isWeekday: boolean

Whether this is a weekday (Monday-Saturday)


month: number

Month (1-12)

DateComponents.month


year: number

Calendar year

DateComponents.year