Skip to content

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
  • 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.

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 / toRRule read and write iCalendar RRULE strings; a rule with its own time zone, BYMONTH lists 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.

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