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
| Class | Description |
|---|---|
.scheduler | Root container with CSS variables (--scheduler-hour-height, --scheduler-time-width, --scheduler-resource-width) |
.scheduler.glass | Glass morphism variant with translucent backgrounds |
| Header | |
.scheduler-header | Top bar with navigation, title, and view toggle |
.scheduler-nav | Navigation button group container |
.scheduler-nav-btn | Previous/next navigation button (36x36) |
.scheduler-title | Date range or current date title |
.scheduler-today-btn | "Today" button with primary outline style |
.scheduler-view-toggle | Container for Day/Week/Month toggle buttons |
.scheduler-view-btn | Individual view toggle button |
.scheduler-view-btn-active | Currently active view toggle button |
| Day Headers | |
.scheduler-day-headers | Sticky row of day column headers |
.scheduler-corner | Empty corner cell above time column |
.scheduler-day-header | Individual day header (name + number) |
.scheduler-day-header-today | Highlights today's column header (primary circle on number) |
.scheduler-day-header-selected | Selected day header (light primary background) |
.scheduler-day-header-weekend | Weekend day header (muted background) |
.scheduler-day-name | Abbreviated day name (Mon, Tue, etc.) |
.scheduler-day-number | Day of month number in circle |
| Resource Headers | |
.scheduler-resources-header | Sticky row of resource column headers |
.scheduler-resources-corner | Empty corner cell above time column (resource view) |
.scheduler-resource-header | Individual resource header with avatar, name, info |
.scheduler-resource-avatar | Circular avatar (32px) with initials or image |
.scheduler-resource-name | Resource name text |
.scheduler-resource-info | Secondary info text below name |
| Grid & Time | |
.scheduler-body | Scrollable grid container |
.scheduler-grid | Flex container for time column + day columns |
.scheduler-times | Sticky left time column |
.scheduler-time | Individual hour label (e.g., "9:00") |
.scheduler-columns | Flex container for day/resource columns |
.scheduler-day-column | Individual day or resource column |
.scheduler-day-column-weekend | Weekend column (muted background) |
| Hour Slots | |
.scheduler-hour-slot | Clickable hour cell with half-hour dashed line |
.scheduler-hour-slot-business | Business hours slot (light background) |
.scheduler-hour-slot-non-business | Non-business hours slot (muted background) |
.scheduler-interval-15 | Add to .scheduler-grid for 15-minute dotted interval lines |
| Bookings | |
.scheduler-booking | Absolutely positioned booking block with left border accent |
.scheduler-booking-title | Booking title text (truncated) |
.scheduler-booking-time | Booking time range text |
.scheduler-booking-resource | Resource name text inside booking |
.scheduler-booking-confirmed | Green (success) booking status |
.scheduler-booking-pending | Yellow (warning) booking status |
.scheduler-booking-cancelled | Muted with line-through text |
.scheduler-booking-blocked | Grey blocked slot (cursor: not-allowed) |
.scheduler-booking-primary | Primary color booking |
.scheduler-booking-error | Red (error) booking |
.scheduler-booking-conflict | Red ring + "!" badge for overlapping bookings |
| Drag to Create | |
.scheduler-drag-preview | Dashed preview block shown while dragging to create |
| Current Time | |
.scheduler-now-line | Red horizontal line with dot indicating current time |
| Month View | |
.scheduler-month-grid | 7-column CSS grid for month layout |
.scheduler-month-header | Weekday header cell in month grid |
.scheduler-month-day | Individual day cell in month grid (min-height: 100px) |
.scheduler-month-day-other | Day from adjacent month (dimmed) |
.scheduler-month-day-today | Today highlight with primary circle on number |
.scheduler-month-day-weekend | Weekend day cell (muted background) |
.scheduler-month-day-number | Day number in month cell |
.scheduler-month-booking | Compact booking pill in month cell |
.scheduler-month-booking-confirmed | Green confirmed booking pill |
.scheduler-month-booking-pending | Yellow pending booking pill |
.scheduler-month-more | "+N more" overflow link in month cell |
| Empty State | |
.scheduler-empty | Centered empty state container |
.scheduler-empty-icon | Icon in empty state (48x48) |