☀
react-native-roster
v0.0.0
Lanes, layers, and sources on one time axis.
Layered absolute intervals with provenance for React Native. Roster projects many lanes across a shared window; Schedule projects one lane into day columns. Every visual region is a zone, and every chrome region takes a className.
Showcase
NativeWind · Faker · rrule adapter
Team availability
Twelve generated people across seven time zones, weekly working hours from recurrence rules, lunch and out-of-office exclusions, and booked events. Press a person to open their week as a Schedule.
Roster fixtures
Many lanes on one horizontal axis: zones, axis steps, provenance, sorting, timezones, and the 200-lane workload.
Booking inside an availability gap
/gallery/booking-in-gap
Equal z: later layer wins
/gallery/equal-z
One rule across 20 lanes
/gallery/highlight-rule
Sort coverage across 200 lanes
/gallery/sort-coverage
Incomplete expansion
/gallery/incomplete-expansion
Adapter: weekly local hours
/gallery/adapter-weekly
Edit the JSON, then Apply rule set. Weekdays use Monday = 0. Press a block to read its rule source.
Adapter: includes and exclusions
/gallery/adapter-overrides
Tuesday is fully excluded; Wednesday has a partial gap; Saturday is a dated include. Press each span to inspect provenance.
Adapter: incomplete result
/gallery/adapter-caps
The total occurrence cap is 0. The adapter reports incomplete; the lane carries that notice. Truncation details appear beside the rule set.
Axis: day, 15 minutes
/gallery/day-15
Step changes ticks and pointer snapping; interval bounds stay exact. Navigate, then return to inspect cache reuse.
Axis: day, 30 minutes
/gallery/day-30
Step changes ticks and pointer snapping; interval bounds stay exact. Navigate, then return to inspect cache reuse.
Axis: day, 60 minutes
/gallery/day-60
Step changes ticks and pointer snapping; interval bounds stay exact. Navigate, then return to inspect cache reuse.
Axis: week, 15 minutes
/gallery/week-15
Step changes ticks and pointer snapping; interval bounds stay exact. Navigate, then return to inspect cache reuse.
Axis: week, 30 minutes
/gallery/week-30
Step changes ticks and pointer snapping; interval bounds stay exact. Navigate, then return to inspect cache reuse.
Axis: week, 60 minutes
/gallery/week-60
Step changes ticks and pointer snapping; interval bounds stay exact. Navigate, then return to inspect cache reuse.
Axis: month, 15 minutes
/gallery/month-15
Step changes ticks and pointer snapping; interval bounds stay exact. Navigate, then return to inspect cache reuse.
Axis: month, 30 minutes
/gallery/month-30
Step changes ticks and pointer snapping; interval bounds stay exact. Navigate, then return to inspect cache reuse.
Axis: month, 60 minutes
/gallery/month-60
Step changes ticks and pointer snapping; interval bounds stay exact. Navigate, then return to inspect cache reuse.
DST week
/gallery/dst-week
Chicago local hours across the change. March has 167 elapsed hours; November has 169. Scroll right to Sunday to see the skipped or repeated hour.
Mixed timezones
/gallery/mixed-timezones
Three lanes, each with a 09:00 rule in its own zone. In Chicago, London starts at 03:00 before March 10 and 04:00 afterward, until London changes on March 31. Change the view zone or navigate to compare.
Empty roster
/gallery/empty
20 lanes
/gallery/20-lanes
Every roster zone: defaults
/gallery/default-zones
Single lane
/gallery/single-lane
Two layers with inset
/gallery/two-layers
Full-day exclusion
/gallery/full-day-gap
Lane flags and completeness
/gallery/never-set
Every zone replaced
/gallery/every-zone
200 lanes
/gallery/200-lanes
Schedule fixtures
One lane projected into day columns: layers, exclusions, clock changes, skipped dates, and every zone.
Schedule: every zone, defaults and replacements
/gallery/schedule-every-zone
Schedule: empty week
/gallery/schedule-empty
Schedule: overlapping rules and three sessions
/gallery/schedule-layers
Schedule: fully excluded day
/gallery/schedule-excluded
Schedule: Chicago spring
/gallery/schedule-spring
Schedule: Chicago fall
/gallery/schedule-fall
Schedule: Lord Howe 30-minute repeat
/gallery/schedule-lord-howe
Schedule: Apia skipped date
/gallery/schedule-apia
Schedule: incomplete lane
/gallery/schedule-incomplete
Schedule: midnight crossing
/gallery/schedule-midnight
One lane: Roster and Schedule
/gallery/schedule-side-by-side
v0.0.0 · b3c7810 · 2026-09-11 21:15Z