Schedule Timeline

8 AM10 AM12 PM2 PM4 PM6 PM

Atrium Loft

Floor 3 · 12 seats

Studio B

Floor 2 · 8 seats

Garden Room

Ground · 20 seats

Rooftop Deck

Level 5 · 40 seats

About this component

Schedule Timeline

A Gantt-style day timeline: resource rows against an hour axis with time-positioned event bars (left/width computed from start/end), grid lines, a live 'now' marker, colored tones, and clickable bars with a hover tooltip showing the event and its time range. Ideal for room bookings, shifts, and resource scheduling.

Usage

The import and the props worth knowing about, in one place.

import { ScheduleTimeline } from "@/components/beste/component/schedule-timeline";

<ScheduleTimeline
  dayStart={8}
  dayEnd={18}
  step={2}
  nowAt={11.5}
  rows={[
    {
      id: "loft",
      label: "Atrium Loft",
      sublabel: "Floor 3 · 12 seats",
      events: [
        { id: "a1", label: "Planning sync", start: 9, end: 11, tone: "primary" },
        { id: "a2", label: "Design review", start: 14, end: 15.5, tone: "emerald" },
      ],
    },
  ]}
  onEventClick={(rowId, eventId) => console.log(rowId, eventId)}
/>

Props

Read from the component's own type, so this cannot drift from what it accepts.

PropTypeDefaultDescription
rows*TimelineRow[]—
dayStartnumber—First hour on the axis (default 8)
dayEndnumber—Last hour on the axis (default 18)
stepnumber—Axis tick interval in hours (default 2)
nowAtnumber—Draw a "now" marker at this hour (omit to hide)
onEventClick(rowId: string, eventId: string) => void—
classNamestring—

More Dashboard components

View all Dashboard

January 2026

Sun
Mon
Tue
Wed
Thu
Fri
Sat
Actions
A
Amara Okafor[email protected]
ScaleActive$4,820Jan 4, 2026
D
Diego Santos[email protected]
StarterTrial$0Feb 18, 2026
GrowthActive$2,140Nov 22, 2025
T
StarterChurned$380Aug 9, 2025
L
ScaleActive$6,390Mar 2, 2026
M
StarterTrial$0Feb 27, 2026

8 row(s)

Page 1 of 2