Time Grid Options

The week and day views share a configurable time grid: visible hours, slot density, snapping, business hours and the live now-indicator.

6:00–22:00, business hours, week numbers

Sep 6 – 12, 2026

W36
Sun
6
Mon
7
Tue
8
Wed
9
Thu
10
Fri
11
Sat
12
All-day
7 AM
8 AM
9 AM
10 AM
11 AM
12 PM
1 PM
2 PM
3 PM
4 PM
5 PM
6 PM
7 PM
8 PM
9 PM
10 PM

Options

PropDefaultEffect
dayStartHour / dayEndHour0 / 24Crop the visible hour range. Events outside are clipped.
slotDuration30Minutes between minor grid lines.
snapDuration15Snapping step for dragging, resizing and selecting.
hourHeight48Pixel height of one hour — the zoom level.
scrollToHour7Hour scrolled into view when the grid opens.
businessHoursnulltrue = Mon–Fri 9–17, or { days, startHour, endHour }. Non-working time is shaded.
nowIndicatortrueThe red current-time line on today’s column, updated every 30 s.
weekNumbersfalseISO week number in the gutter.
hour12localeForce 12/24-hour labels.

Overlapping events

Overlapping events are packed into columns per collision cluster — the same algorithm family used by Google and Apple calendars. Freed columns are reused, so a long event and two short consecutive ones only need two columns.

Constraints

validRange limits navigation and interaction to a date window (days outside are dimmed and inert, navigation clamps). eventOverlap={false} rejects drops, resizes and quick-creates that would collide with another timed event — ideal for bookings.

This week only, no double-booking

September 2026

Sun
Mon
Tue
Wed
Thu
Fri
Sat
30
31
Sep 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Oct 1
2
3

Keyboard editing

Focus an event block (Tab) and use Alt+↑/↓ to move it by one snap step, Alt+←/→ to move it a day, and Alt+Shift+↑/↓ to resize. Changes are announced to screen readers via a live region.

All-day lane

All-day and multi-day events render in a dedicated lane above the grid, with bars spanning the exact days they cover and arrows when they continue beyond the visible week.