Alternatives
A resource timeline has resources (people, rooms, machines) down the side and time across the top. Most calendar libraries have it, but often as a paid tier. Here is where each option stands.
| Resource timeline | Cost | Notes | |
|---|---|---|---|
| Resource Scheduler (this) | Included | Free, MIT | Recurring events, row and column virtualization and nested resource groups included; a timeZone prop; RRULE strings in and out |
| FullCalendar | Premium add-on | Premium starts at $480 per developer | Mature, broad feature set, official React connector |
| MUI X Scheduler | Event Timeline is Premium | Community is free (MIT, beta); Premium is per developer | Recurring events are also Premium |
| DayPilot Lite | Included (horizontal) | Free, Apache 2.0 | Resource hierarchy, keyboard navigation and overlap prevention are Pro only (Pro from $649) |
| react-big-scheduler | Included (resource view) | Free, MIT | Community project; last push March 2023, about 170 open issues and pull requests |
| Bryntum Scheduler | Core feature | Commercial subscription | Built for heavy planning: large datasets, dependencies, utilization |
When to choose this one
Section titled “When to choose this one”- You want a resource timeline without paying per developer seat, and with the source in your hands (npm, or copied in with the shadcn CLI).
- You need drag, resize, conflict rules, a custom create dialog and keyboard support, and you would rather not buy a Pro tier for them.
- Your boards have tens to about a thousand resources with a week or month on screen: rows are virtualized, and the benchmark is reproducible.
When to choose something else
Section titled “When to choose something else”Be honest about the gaps. If any of these are must-haves, use a more mature library:
- Recurring rules beyond the basics. Hourly to yearly repeats (the last Friday, the first and last day of the month) with exceptions are built in, and
parseRRule/toRRuleread and write iCalendarRRULEstrings; a rule with its own time zone,BYMONTHlists and week numbers are not. - Far more than tens of thousands of events. Rows and columns are virtualized: 2,500 resources with 50,000 events draw in under a second and drag smoothly (benchmark), a year view across 50 resources draws in 0.15 s. Beyond several thousand resources, load a window from your server.
- A resource tree with its own data. Nested groups (departments inside divisions, with collapsing headers and a utilization total per group) are built in; drag to reorder and loading a branch on demand are not.
- Gantt dependencies, critical path, utilization charts and resource levelling. Bryntum is the specialist.
- Calendar sync (Google, Outlook, iCal) and server-side scheduling engines.
Migrating from FullCalendar
Section titled “Migrating from FullCalendar”The model is close. Like FullCalendar, you can keep one flat list of events and name each one’s resource with resourceId (resourceIds for several): pass it as the events prop next to resources. Events can also sit inside their resource (resource.events). The callbacks map like this:
| FullCalendar | Resource Scheduler |
|---|---|
eventDrop |
onEventDrop |
eventResize |
onEventResize |
select |
onSlotSelect |
eventClick |
onEventClick |
eventOverlap |
eventOverlap (also accepts a function) |
eventAllow / selectAllow |
isValidDrop |
Sources
Section titled “Sources”- FullCalendar Premium pricing
- MUI X Scheduler
- DayPilot for React and DayPilot Lite
- react-big-scheduler
- DayPilot Pro pricing (Web Mini $649, one developer, no source code)
- Bryntum Scheduler performance benchmark (by the vendor)