Skip to content
SuperScheduler

Every scheduler on this site is live

Plan every resource, to the minute.

A React library for interactive resource planning: a timeline your users drag, resize, zoom and undo, ruled by your business logic. This is not a screenshot — it is SuperScheduler Pro running in your browser.

See the 12 examplesCompare Lite and Pro
events mounted in 292 ms
200,021
React renders while you zoom
0
screen-reader languages
9
Whole hotel65 roomsTwin101Dirty102Clean103Clean104Dirty105Clean106Clean107Clean108Clean109Clean110Clean111Dirty201Dirty202CleanFamily203Clean204Clean205Clean206Clean207Clean208Clean209CleanDouble210Dirty211Clean301Clean302Clean303Dirty304Clean305Clean306Dirty307Out of order308Clean309Inspected310Clean311Inspected401Clean402Clean403Dirty404Clean405Dirty406Clean407Clean408Clean409Dirty410Clean411Clean501CleanStudio502Clean503Clean504Dirty505Clean506Clean507Clean508Out of order509Clean510Clean511CleanOne-bedroom suite601Inspected602Clean603Dirty604Clean605Clean606Clean607Dirty608Dirty609Dirty610DirtyAdrián ÁlvarezAdrián SantosJavier MorenoSarah GilAdrián RamírezValeria GarcíaLucía JiménezMartina GarcíaValeria GutiérrezMario GonzálezHugo JiménezLouis RuizValeria GarridoHugo PérezMarc BlancoOliver PérezLouis BlancoMartina SchmidtAnna DomínguezAnna MuñozMartín MarínNoa SchmidtLucía SmithMartín ÁlvarezJulia MartínezMarco RodríguezMarco MarínEmma GilOliver FernándezMateo MolinaLeo DomínguezLeo GonzálezFreya DomínguezElena DomínguezMartina DíazInês MartinLukas RossiJavier GómezJavier MedinaSofía DuboisIrene IglesiasFreya SmithGiulia DomínguezOliver FernándezLucía RossiFreya BlancoLeo RomeroLukas NavarroElena BlancoLeo CastroOliver NavarroJavier AlonsoMarco LópezLouis SerranoBlockedInês SerranoDiego TorresMartín MuñozLukas DuboisDiego DuboisLeo AlonsoJulia DuboisJavier SchmidtAnna MartinNil MartínezLouis SantosMartina SanzAdrián RodríguezSarah BianchiAnna NavarroFreya FernándezMartín TorresGiulia DuboisElena FernándezElena RomeroMartín BianchiMartín OrtizNil SánchezDiego MarínFreya OrtizFreya SmithMartina MartínezThomas MartínThomas GutiérrezJames RamosInês BrownValeria GómezValeria GarridoAlba GarcíaDiego BlancoCarla DomínguezEmma DíazMario SmithMartín OrtizSofía RomeroJoão MartinPablo RodríguezFreya GarridoNoa GonzálezJavier SmithInês BlancoAdrián GarridoLaura DíazJames CortésMateo CortésÁlvaro RubioThomas SánchezÁlvaro ÁlvarezClaire BrownNoa JiménezDaniel GilLukas GonzálezOliver GutiérrezThomas MedinaMarc JiménezLucía AlonsoLucía HernándezLaura SantosJulia SmithGiulia MartínezClaire SmithMartín GilLukas ÁlvarezMartina MartínezLouis DomínguezThomas RubioJoão SerranoGiulia MolinaJavier BlancoInês AlonsoCarla NavarroJulia GarcíaMario SantosJames CastroThomas GonzálezElena SanzÁlvaro ÁlvarezMartín BrownÁlvaro SanzValeria GutiérrezMateo RamírezLukas MuñozAnna RubioLouis BrownJoão GonzálezInês HernándezHugo BlancoJoão GómezEmma SanzDaniel GómezAlba GonzálezBlockedMarco MartínezCarla SanzLaura GómezSofía CastroThomas SerranoInês MartinAlba SánchezJulia SchmidtHugo MarínChloé DuboisMarc SantosSarah GutiérrezAlba SanzJoão BrownLaura OrtizDaniel SanzDiego SchmidtClaire NavarroLucía DíazJames BlancoSofía RomeroJulia SchmidtLouis RomeroMarc RossiAnna MarínLaura IglesiasSarah BlancoLouis DuboisClaire RamírezThomas MartinPaula IglesiasGiulia MorenoOctober 202611 Sun12 Mon13 Tue14 Wed15 Thu16 Fri17 Sat18 Sun19 Mon20 Tue21 Wed22 Thu23 Fri24 Sat25 Sun
Drag a stay to another room⌘⇣Pinch or ⌘/Ctrl + wheel to zoomHover a stay for its card⇧F10Right-click for actions⌘ZUndo

One engine, any business.

Pick a business. The same scheduler takes its resources, its time scale, its words and its rules, reconfigured in place and never remounted.

Days and weeks
DesignInés G.Marc D.Yuki T.CopyLena F.Omar S.MotionSara N.Teo R.Brand systemLaunch key visualLaunch layoutsRetail kitRetail moodboardIcon setLaunch scriptLaunch copyRetail claimsLaunch filmLogo animationRetail loopsTime offOct 12Oct 19Oct 2612 Mon13 Tue14 Wed15 Thu16 Fri17 Sat18 Sun19 Mon20 Tue21 Wed22 Thu23 Fri24 Sat25 Sun26 Mon27 Tue28 Wed29 Thu30 Fri31 Sat

The job

Specialists across overlapping campaigns, planned in days and weeks, where one late task moves the next.

Try it. Drag Launch film to start before Launch layouts ends.

The library gives

  • Resource tree
  • Week and day headers
  • Dependency links
  • Days on the drag card

Your app decides

  • A task waits for the one it depends on
  • Who works in which discipline
  • Time off stays blocked
Open the agency example

From the year to the minute.

One timeline at every scale. Pinch, or scroll with Ctrl or ⌘ held: the zoom stays under your pointer, headers and detail adapt as you go, and React does not render once.

Scale

44px

per day

  • Ctrl+scrollat the pointer
  • Pinch
  • Ctrl+−keyboard
Level of detailDetail
React renders0Zoom to measure
HallsAuditoriumHall AHall BHall CMeeting roomsStudio 1Studio 2Studio 3BoardroomOpen spacesFoyerTerraceGardenTrainingTrainingTrainingBreakoutTrainingTrainingWorkshopBreakoutBreakoutTrainingTrainingTrainingBreakoutBreakoutBreakoutBreakoutWorkshopWorkshopTrainingWorkshopWorkshopWorkshopBreakoutBreakoutBreakoutBreakoutMeetingMeetingMeetingMeetingMeetingMeetingMeetingMeetingMeetingMeetingMeetingMeetingMeetingMeetingMeetingMeetingMeetingMeetingConcertProduct launchKeynoteTalkCoffee breakPanelTalkTalkPanelCoffee breakTalkKeynoteTalkCoffee breakPanelTalkTalkPanelCoffee breakTalkConcertConcertProduct launchConcertGala dinnerKeynoteTalkCoffee breakPanelTalkTalkPanelCoffee breakTalkKeynoteTalkCoffee breakPanelTalkTalkPanelCoffee breakTalkConcertClosedSet-upTrade fairTeardownSet-upTrade fairTeardownSet-upTrade fairTeardownSet-upTrade fairTeardownSet-upCongress expoSet-upCongress expoTrainingTrainingTrainingTrainingRegistrationLunchRegistrationLunchReceptionRegistrationLunchRegistrationLunchJanuary 2027123456789101112131415161718192021222324252627282930
The whole yearBusyFull house

Fictional congress centre, synthetic data1,966 bookings in 2027

Scale without tricks.

Pick a dataset and your browser generates it right here, up to 200,000 bookings on 5,000 rows. Then scroll, zoom or let the test drive. The page keeps only what is on screen in the DOM.

Fictional hotels, synthetic bookings generated in your browser
All propertiesResort La RiberaTwin101102103104105106107108109201202203204João MolinaSarah GonzálezAdrián SanzJoão MolinaMarco GutiérrezLukas MolinaNoa BlancoChloé SilvaMartín JiménezDaniel BlancoSarah PérezLeo GarcíaGiulia CortésLucía MolinaMartín ÁlvarezJulia MedinaJames SerranoLeo MarínDaniel SchmidtDaniel SchmidtAdrián IglesiasDaniel MartinCarla VázquezAlba RubioMateo IglesiasJames DíazMartina NavarroMarc PérezJavier BrownCarla DíazMartín MedinaMartina JiménezJanuary 2026February 20261234567891011121314151617181920212223242526272829303112

In the lab120 rows · 6,000 bookings

Mount
23.2 ms
Frame p95
9.1 ms
DOM nodes
2,506
React renders during scroll
0

Rules you can feel.

Drag a session and your rules answer while it is still in the air: where it would land, for how long and, when the answer is no, why. Every callback your app receives shows up beside the board, with the line of code that decided.

Soundcheck

Studio Aup to 10Studio Bup to 4Studio Cup to 6Studio Dup to 8Studio Eup to 2Night FerryCopper BloomLumen ChoirCopper BloomHalcyonStatic OrchardHalcyonNight FerryStatic OrchardPaper KitesPaper KitesOct 12Oct 1912 Mon13 Tue14 Wed15 Thu16 Fri17 Sat18 Sun19 Mon20 Tue21 Wed22 Thu23 Fri24 Sat25 Sun

Try this0/6

  1. Drag Lumen Choir into Studio D.
  2. Drop any session on Studio C between Wednesday and Friday.
  3. Move Copper Bloom’s weekend session to Studio B.
  4. Stretch a session past four days.
  5. Undo, or click a step in the history.
  6. Right-click a session, or focus it and press Shift F10.

Teams, rooms and machines, ordered the way you think.

The same twelve people as a tree by team, by skill or a flat list, with columns your application computes. Search them, read anyone at a glance, and drag work from the unassigned tray onto a person: two panes, one timeline.

BrandAna P.62%Jonas K.52%Mei L.62%Rafa D.71%ProductNoor H.67%Luca B.62%Iris V.43%Tom S.76%StudioEva M.67%Kofi A.57%Lia R.67%Max W.62%Atlas relaunchNimbus campaignAtlas relaunchAtlas relaunchHarbor appNimbus campaignHarbor appNimbus campaignAtlas relaunchHarbor appNimbus campaignNimbus campaignHarbor appAtlas relaunchNimbus campaignAtlas relaunchHarbor appNimbus campaignAtlas relaunchHarbor appHarbor appNimbus campaignAtlas relaunchHarbor appAtlas relaunchNimbus campaignHarbor appOct 12Oct 19Oct 2612131415161718192021222324252627282930311
  • /Search inside the board
  • Drag work between the panes
  • CtrlZooms both panes together
  • Fictional agency, synthetic data
  • TreestreeEnabled

    Groups fold and unfold; regrouping keeps every person’s work attached.

  • ColumnsrowHeaderColumns

    Row header columns hold your own figures, like the load your app computes.

  • FiltersonRowFilter

    Rows filter through a callback you write: by name, skill or anything else.

  • PanesSchedulerPanes

    Stacked schedulers share date, zoom and column widths; work moves between them.

Your brand, not ours.

Start from a theme, then make it yours: accent, surfaces, radius, event style, density and dark mode. Every change writes the scheduler’s own tokens while it runs, checks the contrast and hands you the CSS.

Studio AStudio BStudio CStudio DStudio EStudio FNight FerryCopper BloomHalcyonLumen ChoirNight FerryHalcyonHalcyonCopper BloomNight FerryLumen ChoirStatic OrchardHalcyonStatic OrchardPaper TigersPaper TigersLumen ChoirStatic OrchardOct 12Oct 1912 Mon13 Tue14 Wed15 Thu16 Fri17 Sat18 Sun19 Mon20 Tue21 Wed22 Thu23 Fri

Fine-tune

Paper

Accent#196144

Surface

Event radius7 px

Event style
Density
Mode

Event text8.5:1Passes AA

Accent on surface7.1:1Passes 3:1

.planning {
  --super-scheduler-accent-rgb: 25 97 68;
  --super-scheduler-surface: #fcfaf6;
  --super-scheduler-surface-raised: #f6f3ee;
  --super-scheduler-text: #161b22;
  --super-scheduler-text-muted: #4a5058;
  --super-scheduler-border: #ddd8d2;
  --super-scheduler-row-line: #ddd8d2;
  --super-scheduler-grid-line: #e9e6e0;
  --super-scheduler-selection: rgb(25 97 68 / 0.12);
  --super-scheduler-selection-border: rgb(25 97 68 / 0.75);
  --super-scheduler-focus-ring: rgb(25 97 68 / 0.5);
  --super-scheduler-today-bg: rgb(25 97 68 / 0.06);
  --super-scheduler-weekend-bg: rgb(0 0 0 / 0.025);
  --super-scheduler-hover-cell: rgb(25 97 68 / 0.06);
  --super-scheduler-hover-row: rgb(25 97 68 / 0.03);
  --super-scheduler-event-radius: 7px;
  --super-scheduler-event-bg: #dee6df;
  --super-scheduler-event-border: #b3c9bd;
  --super-scheduler-event-text: #124631;
  --super-scheduler-event-bar: #196144;
}

Paste the CSS, put the class on the element around the scheduler and pass the density.

Fictional bookings. The tokens are the real --super-scheduler-* custom properties: the scheduler reads them live, nothing reloads.

Integrate in an afternoon.

One React component, typed props and callbacks. Read the code the way you will write it: each note lights up the lines it explains.

src/Planning.tsxtsx
import { SuperSchedulerComponent } from 'super-scheduler-lite'import type { SuperScheduler } from 'super-scheduler-lite'import 'super-scheduler-lite/styles.css'const rooms: SuperScheduler.ResourceData[] = [  { id: 'studio-a', name: 'Studio A' },  { id: 'studio-b', name: 'Studio B' },]const bookings: SuperScheduler.EventData[] = [  { id: 1, resource: 'studio-a', text: 'Night Ferry', start: '2026-10-02', end: '2026-10-05' },  { id: 2, resource: 'studio-b', text: 'Lumen Choir', start: '2026-10-04', end: '2026-10-06' },]export function Planning() {  return (    <SuperSchedulerComponent      startDate="2026-10-01"      days={31}      height={420}      resources={rooms}      events={bookings}      onEventClick={(args) => console.info(args.e.data.text)}    />  )}

SuperScheduler does

  • Draws rows and events, virtualized both ways
  • Handles keyboard, focus and clicks

Your app decides

  • Where the data comes from
  • Which window of days to show

Every example has its own data model, rules, mission and source code. Six to start with.

See all examples12

Start with a read-only timeline. Grow into a planning product.

Both editions share the data model, civil dates, virtualization and keyboard support. Pro adds everything that changes the plan.

Lite

Public on npm

Free

Read-only daily timelines for the boards and screens that show the plan.

What you build with it

  • Room, desk and equipment availability boards
  • Occupancy screens for a front desk or a wall display
  • Read-only rosters and shift overviews
  • Status timelines that open your own pages on click

How you install it

Package manager
npm install super-scheduler-lite

Public npm package · Package license: ISC

Quick start

Pro

Annual license

€499 per year

The full planning surface: people drag, resize, zoom, link and undo on the timeline itself.

What you build with it

  • Dispatch boards where jobs move between crews and are checked as they land
  • Booking desks that refuse a double booking and say why
  • Production plans with dependencies, from months down to 5-minute cells
  • Control rooms with coordinated panes, a minimap and saved views

How you install it

package.json
"super-scheduler": "https://npm.superscheduler.org/pro/YOUR_DOWNLOAD_KEY/1.0.0.tgz"

Private, versioned tarball over HTTPS with a download key

Install guide

License terms not published yet. Nothing is sold on this site.

Compare Lite and Pro

Questions teams ask before adopting it

Short answers, each with the guide that goes deeper.

Browse the documentation
Is it a React component or a framework-agnostic engine?

Both. SuperSchedulerComponent is the React wrapper for React 18 and 19; underneath, a DOM engine handles scrolling, zoom and gestures without React renders. You can also mount it imperatively with new SuperScheduler.Scheduler(element, options).

React integration
How good are the TypeScript types?

Declarations ship with the package. Options, callbacks and control methods are typed, and event data is generic: EventData<YourFields> keeps your own fields typed in handlers and render hooks.

Resources, events and intervals
Can it look like the rest of our product?

Yes. Colors, radius, density and dark mode come from documented CSS custom properties; classNames and styles reach individual parts; React render slots replace the content of events, rows and headers.

Theming guide
Who stores the data, and who prevents conflicts?

Your application. The scheduler shows and edits what you give it and reports every change through callbacks. Persistence, permissions and the final word on conflicts belong to your backend; the library helps with overlap prevention, blocked cells and refusals with a reason.

Controlled events and callbacks
How is Pro distributed?

As a private, versioned .tgz over HTTPS that npm installs like any URL dependency. The download key appears in your manifest and lockfile, so treat it as a secret. Lite is a regular public npm package.

Install Pro
Can users work with the keyboard and screen readers?

Pro has a full keyboard mode: arrows move focus, Enter activates, Alt+arrows move events, and changes are announced to assistive technology in English, Spanish, French, German and five more languages. Lite supports keyboard navigation too.

Keyboard and accessibility
Does it handle hours and minutes, or only days?

Pro covers months down to 5-minute cells, hides nights or weekends when you ask it to, and switches scale continuously. Lite is a daily timeline.

Hours, minutes, days and zoom
What about time zones and recurring events?

Dates are civil wall-clock values, deliberately free of time zones. Convert zoned instants and expand recurrences in your application before handing events to the scheduler.

Languages, dates and time zones