GitHub

Scheduler

Resource scheduler with week/day/month views, bookings with status colors, time grid, resource columns, current time indicator, and drag-to-create support.

Week View

Preview
Feb 23 - Mar 1, 2026
Mon 23
Tue 24
Wed 25
Thu 26
Sat 28
8:00
9:00
10:00
11:00
12:00
Team Standup
9:00 - 10:00
Client Review
10:15 - 11:45
Workshop
8:00 - 10:00
Lunch Meeting
11:00 - 12:00

Resource View

Preview
Tuesday, Feb 24
AL
Dr. Ana Lopez
Cardiology
MR
Dr. Marc Ruiz
Dermatology
SP
Sara Perez
Physiotherapy
9:00
10:00
11:00
12:00
Check-up: Maria G.
9:00 - 10:00
Consultation
10:15 - 11:00
Skin Treatment
10:00 - 11:30
Rehab Session
9:30 - 10:30
Blocked
11:00 - 12:00

Booking Statuses

Preview
Booking Status Examples
9:00
10:00
11:00
12:00
13:00
14:00
Confirmed Booking
9:00 - 10:00
Pending Approval
10:00 - 11:00
Cancelled Session
11:00 - 12:00
Blocked Slot
12:00 - 13:00
Primary Event
13:00 - 14:00
Urgent / Error
14:00 - 15:00

Month View

Preview
February 2026
Mon
Tue
Wed
Thu
Fri
Sat
Sun
26
27
28
29
30
31
1
2
Team Standup
3
4
Client Call
5
6
Workshop
Review
7
8
9
10
Sprint Demo
11
12
Standup
1:1 Meeting
+2 more
13
14
15

Current Time Indicator

Preview
Today - Live Indicator
9:00
10:00
11:00
Morning Standup
9:00 - 10:00
Design Review
11:00 - 12:00

Glass Variant

Preview
Feb 24, 2026
Tue 24
9:00
10:00
11:00
12:00
Morning Standup
9:00 - 10:00
Design Workshop
11:00 - 12:30

Classes Reference

ClassDescription
.schedulerRoot container with CSS variables (--scheduler-hour-height, --scheduler-time-width, --scheduler-resource-width)
.scheduler.glassGlass morphism variant with translucent backgrounds
Header
.scheduler-headerTop bar with navigation, title, and view toggle
.scheduler-navNavigation button group container
.scheduler-nav-btnPrevious/next navigation button (36x36)
.scheduler-titleDate range or current date title
.scheduler-today-btn"Today" button with primary outline style
.scheduler-view-toggleContainer for Day/Week/Month toggle buttons
.scheduler-view-btnIndividual view toggle button
.scheduler-view-btn-activeCurrently active view toggle button
Day Headers
.scheduler-day-headersSticky row of day column headers
.scheduler-cornerEmpty corner cell above time column
.scheduler-day-headerIndividual day header (name + number)
.scheduler-day-header-todayHighlights today's column header (primary circle on number)
.scheduler-day-header-selectedSelected day header (light primary background)
.scheduler-day-header-weekendWeekend day header (muted background)
.scheduler-day-nameAbbreviated day name (Mon, Tue, etc.)
.scheduler-day-numberDay of month number in circle
Resource Headers
.scheduler-resources-headerSticky row of resource column headers
.scheduler-resources-cornerEmpty corner cell above time column (resource view)
.scheduler-resource-headerIndividual resource header with avatar, name, info
.scheduler-resource-avatarCircular avatar (32px) with initials or image
.scheduler-resource-nameResource name text
.scheduler-resource-infoSecondary info text below name
Grid & Time
.scheduler-bodyScrollable grid container
.scheduler-gridFlex container for time column + day columns
.scheduler-timesSticky left time column
.scheduler-timeIndividual hour label (e.g., "9:00")
.scheduler-columnsFlex container for day/resource columns
.scheduler-day-columnIndividual day or resource column
.scheduler-day-column-weekendWeekend column (muted background)
Hour Slots
.scheduler-hour-slotClickable hour cell with half-hour dashed line
.scheduler-hour-slot-businessBusiness hours slot (light background)
.scheduler-hour-slot-non-businessNon-business hours slot (muted background)
.scheduler-interval-15Add to .scheduler-grid for 15-minute dotted interval lines
Bookings
.scheduler-bookingAbsolutely positioned booking block with left border accent
.scheduler-booking-titleBooking title text (truncated)
.scheduler-booking-timeBooking time range text
.scheduler-booking-resourceResource name text inside booking
.scheduler-booking-confirmedGreen (success) booking status
.scheduler-booking-pendingYellow (warning) booking status
.scheduler-booking-cancelledMuted with line-through text
.scheduler-booking-blockedGrey blocked slot (cursor: not-allowed)
.scheduler-booking-primaryPrimary color booking
.scheduler-booking-errorRed (error) booking
.scheduler-booking-conflictRed ring + "!" badge for overlapping bookings
Drag to Create
.scheduler-drag-previewDashed preview block shown while dragging to create
Current Time
.scheduler-now-lineRed horizontal line with dot indicating current time
Month View
.scheduler-month-grid7-column CSS grid for month layout
.scheduler-month-headerWeekday header cell in month grid
.scheduler-month-dayIndividual day cell in month grid (min-height: 100px)
.scheduler-month-day-otherDay from adjacent month (dimmed)
.scheduler-month-day-todayToday highlight with primary circle on number
.scheduler-month-day-weekendWeekend day cell (muted background)
.scheduler-month-day-numberDay number in month cell
.scheduler-month-bookingCompact booking pill in month cell
.scheduler-month-booking-confirmedGreen confirmed booking pill
.scheduler-month-booking-pendingYellow pending booking pill
.scheduler-month-more"+N more" overflow link in month cell
Empty State
.scheduler-emptyCentered empty state container
.scheduler-empty-iconIcon in empty state (48x48)