PhiaUi.Components.ScheduleView (phia_ui v0.1.17)

Copy Markdown View Source

Calendly-style availability schedule grid.

Renders a tabular week view where columns are days and rows are time slots. Each slot can be: available (clickable), booked (gray, disabled), or selected (primary highlight). Unlike CalendarWeekView (px-positioned events), ScheduleView is a booking availability grid for scheduling appointments.

Example

<.schedule_view
  week_start={~D[2026-03-09]}
  start_hour={9}
  end_hour={17}
  step_minutes={30}
  availability={%{~D[2026-03-09] => ["09:00", "09:30", "10:00"]}}
  booked_slots={%{~D[2026-03-09] => ["09:30"]}}
  selected_slot={%{date: ~D[2026-03-09], time: "10:00"}}
  on_select="select_slot"
  days_count={5}
/>

Summary

Functions

schedule_view(assigns)

Attributes

  • week_start (:any) (required)
  • start_hour (:integer) - Defaults to 8.
  • end_hour (:integer) - Defaults to 18.
  • step_minutes (:integer) - Defaults to 30.
  • availability (:map) - Defaults to %{}.
  • booked_slots (:map) - Defaults to %{}.
  • selected_slot (:map) - Defaults to nil.
  • on_select (:string) - Defaults to nil.
  • days_count (:integer) - Defaults to 5. Must be one of 5, or 7.
  • class (:string) - Defaults to nil.
  • Global attributes are accepted.