Zum Inhalt springen
SuperScheduler

EinstiegGilt fürLite und Pro

Was ist ein Ressourcenplaner?

Ein Ressourcenplaner ist eine Zeitleiste mit einer Zeile pro Ressource (ein Zimmer, eine Person, eine Maschine, ein Fahrzeug), auf der die Zeit horizontal verläuft. Jede Buchung und jeder Auftrag ist ein Balken in der Zeile der Ressource, die die Arbeit erledigt. Ein Terminkalender zeigt einen einzelnen Terminplan als Tages-, Wochen- oder Monatsraster; ein Ressourcenplaner stellt viele Ressourcen nebeneinander und lässt Menschen Arbeit zwischen ihnen verschieben. SuperScheduler ist eine solche Komponente für React: Lite ist eine öffentliche, schreibgeschützte Tageszeitleiste auf npm, Pro ergänzt Bearbeitung, Zoom, Bäume und Planungsmodule.

Geprüft mit v0.1.0 · überarbeitet am 7. Oktober 2026.md

Ein Ressourcenplaner beantwortet eine einzige Frage: Welche Ressource macht was, und wann ist sie frei? Ressourcen sind Zeilen, die Zeit verläuft horizontal, und jede Arbeit ist ein Balken in der Zeile der Ressource, die sie erledigt. Die Hotelrezeption sieht Zimmer und Aufenthalte, die Werkstatt Hebebühnen und Reparaturaufträge, die Disposition Techniker und Einsätze.

Diese Seite erklärt, worin sich dieses Layout von einem Kalender unterscheidet, wann Ihr Produkt es braucht, was SuperScheduler übernimmt und was in Ihrer Anwendung bleibt und wie sich die beiden Editionen unterscheiden. Zum Schluss folgt das Vokabular, das der Rest der Dokumentation verwendet.

Der Unterschied zum Terminkalender

Beide zeigen Ereignisse auf einer Zeitachse, sind aber für unterschiedliche Fragen gebaut.

TerminkalenderRessourcenplaner
HauptfrageWas steht in diesem Terminplan?Welche Ressource macht was, und wo gibt es freie Kapazität?
LayoutTage als Spalten, Stunden von oben nach untenRessourcen als Zeilen, Zeit von links nach rechts
ZeilenEin Terminplan, manchmal einige nebeneinanderDutzende bis Tausende Ressourcen, oft in einem Baum gruppiert
Typische AktionEinen Termin öffnen oder anlegenArbeit auf eine andere Ressource verschieben, ihre Daten ändern, einen Konflikt erkennen
ZeithorizontEin Tag, eine Woche oder ein MonatVon Minuten bis Monaten, oft in derselben Ansicht mit Zoom
ÜberlappungenNebeneinander in einer Tagesspalte gezeichnetInnerhalb der Zeile gestapelt oder von Ihren Regeln abgelehnt

Ein Kalender ist um die Person organisiert, die ihn liest. Ein Ressourcenplaner ist um die Dinge organisiert, deren Kapazität begrenzt ist. Sobald Nutzer viele davon gleichzeitig vergleichen und Arbeit von einer zur anderen verschieben müssen, stößt das Kalenderlayout an seine Grenzen: Eine Wochenansicht für 80 Zimmer sind 80 Kalender.

Wann Sie einen brauchen

Sie brauchen einen Ressourcenplaner, wenn mehrere dieser Punkte zutreffen:

  • Kapazität ist das Problem. Zimmer, Betten, Hebebühnen, Teams, Studios, Maschinen, Fahrzeuge, Liegeplätze oder Messgeräte können jeweils nur eine Sache gleichzeitig erledigen oder eine begrenzte Anzahl.
  • Arbeit wandert zwischen Ressourcen. Eine Buchung geht von Zimmer 101 in Zimmer 102, eine Reparatur wechselt auf eine Bühne mit Hebevorrichtung, ein Einsatz wird einem anderen Techniker zugewiesen.
  • Viele Ressourcen werden gleichzeitig verglichen. Dutzende bis Tausende Zeilen, oft nach Standort, Etage, Team oder Typ gruppiert.
  • Die Dauern sind sehr unterschiedlich. 15-Minuten-Slots und mehrwöchige Einsätze stehen in denselben Daten, daher muss die Ansicht von Minuten bis Monaten reichen.
  • Regeln entscheiden, was wohin darf. Ein Aufenthalt kann nicht in die Vergangenheit verschoben werden, ein Auftrag braucht einen zertifizierten Techniker, zwei Operationen können sich keinen Saal teilen.

Ein einfacher Kalender genügt, wenn eine Person einen Terminplan verwaltet, wenn es vor allem um Einladungen und wiederkehrende Besprechungen geht oder wenn niemand Ressourcen vergleicht. Dann fügt ein Ressourcenplaner eine Dimension hinzu, die niemand nutzt.

Zimmerplanung im HotelIn Zimmer 104 tropft die Dusche. Buchen Sie den nächsten Gast um, sperren Sie das Zimmer für den Installateur und finden Sie die ausgebuchten Nächte. Termine in der PhysiotherapiepraxisEin Patient kann um 10 Uhr nicht. Finden Sie den nächsten Slot, der Pausen und Reinigung respektiert.

Was die Bibliothek übernimmt und was Ihre Anwendung

SuperScheduler ist eine Komponente der Benutzeroberfläche. Sie rendert, misst und reagiert auf Interaktionen; Ihre Daten und Ihre Geschäftslogik gehören ihr nicht.

SuperSchedulerIhre Anwendung
Zeichnet Ressourcenzeilen, Zeitköpfe und Ereignisbalken und virtualisiert beide Achsen, sodass nur das im DOM existiert, was auf dem Bildschirm zu sehen istLädt die Daten aus Ihrem Backend und speichert Änderungen zurück
Stapelt überlappende Ereignisse innerhalb einer ZeileEntscheidet, wer was sehen und ändern darf
Verarbeitet Zeiger-, Touch- und Tastaturgesten (Pro) und fragt Ihre Callbacks, bevor eine Änderung übernommen wirdSetzt Geschäftsregeln in diesen Callbacks um und prüft sie auf dem Server erneut
Zeigt Ablehnungen, Konflikte und gesperrte Zeiten an (Pro)Entscheidet, was als Konflikt oder als geschlossener Zeitraum gilt
Formatiert bürgerliche Datumsangaben in der konfigurierten LocaleRechnet zeitzonenbezogene Zeitpunkte in lokale Uhrzeiten um und zurück

Lite und Pro

SuperScheduler gibt es in zwei Editionen mit demselben Komponentennamen und denselben Konventionen für Datumsangaben und Daten.

FunktionLitePro
ZeitachseNur Tageszellen (scale: 'Day')Minuten, eigene Zelldauern, Stunden, Tage, Wochen, Monate und Jahre
RessourcenFlache Liste (id, name)Flache Listen, Bäume, fixierte und geteilte Zeilen, Spalten im Zeilenkopf
EreignisseSchreibgeschützte Balken mit einfachen Farben, Klasse und TooltipZiehen, Dauer ändern, per Auswahl anlegen, löschen, eigenes HTML, Areas und Menüs
CallbacksonEventClick, onTimeRangeClickDer vollständige Satz: vor und nach jeder Änderung, während des Ziehens, Render-Hooks
Überlappende EreignisseAutomatisch gestapeltGestapelt oder mit allowEventOverlap: false abgelehnt, mit Konflikt-Feedback
Geschäftsregeln beim ZiehenNicht anwendbaronEventMoving, onEventResizing, gesperrte Zellen, Sperren pro Ereignis, asynchrone Bestätigung
ZoomKeinerZoomstufen, Pinch-Geste und Strg/Cmd + Mausrad, Detailstufen, Zoom-Widgets
TastaturPfeiltasten bewegen die aktive Zelle; Eingabe oder Leertaste aktiviert sieVollständiges Tastaturmodell, einschließlich Verschieben und Dauer ändern von Ereignissen
VirtualisierungZeilen, Tage und EreignisseZeilen, Zeit und Ereignisse, dazu unendliches Scrollen
AuswahlKeineEreignisse, Zeilen, Zeiträume, Rechtecke, mehrere Zeiträume gleichzeitig
Verknüpfungen zwischen EreignissenKeineAus Ihren Daten gezeichnet (Ende-Anfang und die drei anderen Typen)
ModuleKeineMinimap, Bereiche, Rückgängig und Wiederholen, gespeicherte Ansichten, bereichsweises Laden, React-Render-Slots, State-Hooks
ThemingSechs CSS Custom PropertiesVollständiger Token-Satz, Dark Mode, Dichte-Presets, Tailwind-Preset
Nicht unterstützte OptionenWerfen einen FehlerReservierte APIs sind typisiert und warnen in der Entwicklung einmal

Keine der beiden Editionen begrenzt die Anzahl der Ressourcen oder Ereignisse. Lite wirft einen Fehler, wenn es eine Option erhält, die es nicht implementiert; eine Pro-Konfiguration funktioniert in Lite also nie stillschweigend nur halb. Pro behält eine kleine Gruppe reservierter APIs, die aus Kompatibilitätsgründen typisiert, aber nicht implementiert sind (zum Beispiel Textbearbeitung direkt im Ereignis, interaktives Anlegen von Verknüpfungen und Export als Bild oder Tabelle); sie warnen in der Entwicklung einmal, und die API-Referenz kennzeichnet sie.

Kommerzielle Fragen zu Pro beantwortet die Seite Preise.

Die Daten auf einen Blick

Alles, was der Planer zeichnet, stammt aus zwei Arrays: Ressourcen und Ereignisse. Ein Ereignis verweist über die ID auf seine Ressource.

src/planning-data.tsts
import type { SuperScheduler } from 'super-scheduler'

// Rows: anything that can only do one thing at a time, or has a limited capacity.
export const resources: SuperScheduler.ResourceData[] = [
  { id: 'room-101', name: 'Room 101' },
  { id: 'room-102', name: 'Room 102' },
  { id: 'van-3', name: 'Van 3' },
]

// Bars: one interval on one row. `end` is exclusive, so the stay below ends at 11:00 on
// 5 October and a booking that starts at 11:00 that day does not overlap it.
export const events: SuperScheduler.EventData[] = [
  {
    id: 'booking-1042',
    resource: 'room-101',
    start: '2026-10-02T14:00:00',
    end: '2026-10-05T11:00:00',
    text: 'Booking 1042',
  },
  {
    id: 'route-7',
    resource: 'van-3',
    start: '2026-10-03T08:00:00',
    end: '2026-10-03T12:30:00',
    text: 'Delivery route 7',
  },
]

Auf einer Tagesachse gerendert, sähen Sie drei Zeilen und zwei Balken: einen vom 2. bis zum 5. Oktober auf Room 101 und einen am 3. Oktober auf Van 3. Der Leitfaden zum Datenmodell behandelt IDs, Intervalle und eigene Felder im Detail.

Glossar

Diese Begriffe haben in der gesamten Dokumentation und in der API dieselbe Bedeutung.

Ressource

Eine Zeile des Planers: alles, was über die Zeit Arbeit leisten kann. In der API ist das ResourceData, mit einer id und einem name. In Pro können Ressourcen children haben (ein Baum), oben oder unten fixiert oder in Unterzeilen geteilt sein. Manche APIs sprechen von row: Eine Zeile ist die gerenderte Ressource.

Ereignis

Ein Balken in einer Ressourcenzeile: eine Buchung, eine Schicht, ein Auftrag, eine Reservierung. In der API ist das EventData, mit id, text, start, end und der resource, zu der es gehört. In Callbacks erhalten Sie meist einen Wrapper (SuperScheduler.Event), dessen Eigenschaft data Ihr Objekt ist.

Intervall

Die Spanne eines Ereignisses, von start bis end. Intervalle sind halboffen, [start, end): Der Anfang gehört zum Ereignis, das Ende nicht. Ein Ereignis, das um 11:00 Uhr endet, und ein anderes, das um 11:00 Uhr beginnt, überlappen sich nicht.

Zelle

Ein Schritt des Zeitrasters in einer Zeile: je nach Skala ein Tag, eine Stunde oder ein 15-Minuten-Slot. Auf Zellen klicken Sie, um Zeit auszuwählen, an ihnen richtet sich das Einrasten aus, und Sie können sie mit onBeforeCellRender (Pro) sperren oder gestalten.

Skala

Die Größe einer Zelle: Day in Lite; in Pro außerdem Hour, Minute, Week, Month, Year oder CellDuration mit einer eigenen Anzahl von Minuten. Die Skala ist unabhängig davon, wie die Köpfe beschriftet sind. Siehe Stunden, Minuten, Tage und Zoom.

Zoomstufe

Ein benannter Satz von Optionen der Zeitachse (Skala, Zelldauer, Zellbreite, Köpfe), die Pro gemeinsam anwendet. Gesten und control.zoom wechseln zwischen Zoomstufen oder zoomen stufenlos zwischen ihnen.

Control

Die Instanz des Planers, SuperScheduler.Scheduler. Die React-Komponente erzeugt sie beim Mounten und gibt sie beim Unmounten frei. Über ihre Methoden scrollen, wählen, aktualisieren oder zoomen Sie; Handler erhalten sie als args.control. Siehe React-Integration.

Nächste Schritte