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.