chevron_left
{headerTitle}
chevron_right
Today
(currentView = "day")}>Day
(currentView = "week")}>Week
(currentView = "month")}>Month
{#if currentView === "month"}
{#each weekDayHeaders as day}
{day}
{/each}
{#each weeks as week}
{#each week as day} {@const dayEvents = getEventsForDay(day)} {@const isToday = isSameDay(day, today)} {@const inMonth = isCurrentMonth(day)}
onDateClick?.(day)} >
{day.getDate()}
{#each dayEvents.slice(0, 2) as event}
{ e.stopPropagation(); onEventClick?.(event); }} > {event.title}
{/each} {#if dayEvents.length > 2}
+{dayEvents.length - 2} more
{/if}
{/each}
{/each}
{/if} {#if currentView === "week"}
{#each weekDates as day} {@const dayEvents = getEventsForDay(day)} {@const isToday = isSameDay(day, today)}
{weekDayHeaders[(day.getDay() + 6) % 7]}
{day.getDate()}
{#each dayEvents as event}
onEventClick?.(event)} > {event.title}
{/each}
{/each}
{/if} {#if currentView === "day"} {@const dayEvents = getEventsForDay(currentDate)}
{#if dayEvents.length === 0}
No events for this day
{:else}
{#each dayEvents as event}
onEventClick?.(event)} >
{event.title}
{new Date(event.start_time).toLocaleTimeString( "en-US", { hour: "numeric", minute: "2-digit" }, )} - {new Date(event.end_time).toLocaleTimeString( "en-US", { hour: "numeric", minute: "2-digit" }, )}
{#if event.description}
{event.description}
{/if}
{/each}
{/if}
{/if}