WeekSchedule
fun <T> WeekSchedule(events: (LocalDate) -> List<CalendarEvent<T>>, modifier: Modifier = Modifier, state: ScheduleState = rememberScheduleState(), daysPerPage: Int = 7, today: LocalDate = currentDate(), currentTime: LocalTime? = null, userScrollEnabled: Boolean = true, zoomGesturesEnabled: Boolean = true, showHalfHourLines: Boolean = false, minEventDurationMinutes: Int = 15, colors: ScheduleColors = ScheduleDefaults.colors(), dimensions: ScheduleDimensions = ScheduleDefaults.dimensions(), strings: ScheduleStrings = ScheduleDefaults.strings(), onEventClick: (CalendarEvent<T>) -> Unit? = null, onEmptySlotClick: (LocalDate, LocalTime) -> Unit? = null, dayHeader: @Composable (LocalDate, Boolean) -> Unit? = { date, isToday ->
ScheduleDefaults.DayHeader(date, isToday, colors)
}, allDayEventContent: @Composable (CalendarEvent<T>) -> Unit = { event ->
ScheduleDefaults.AllDayEventChip(event, colors, dimensions, onClick = onEventClick?.let { cb -> { cb(event) } })
}, hourLabel: @Composable (Int) -> Unit = { hour ->
ScheduleDefaults.HourLabel(hour, colors)
}, nowIndicator: @Composable () -> Unit = {
ScheduleDefaults.NowIndicator(colors, dimensions, contentDescription = strings.nowLabel)
}, eventContent: @Composable BoxScope.(PositionedEvent<T>) -> Unit = { positioned ->
ScheduleDefaults.EventTile(
positioned = positioned,
colors = colors,
dimensions = dimensions,
onClick = onEventClick?.let { cb -> { cb(positioned.event) } },
)
})
Horizontally paged multi-day (default 7-day week) 24-hour schedule view. Swiping moves a whole page of daysPerPage days. Seven-day pages start on ScheduleState.firstDayOfWeek; other sizes are counted from the range start. All-day events show as chips in each covered day's column.
See DaySchedule for the shared parameters.