Ein Kalender für alles: Buchungen, PT-Sessions und Vereins-Events
Foto: anonymous · Rijksmuseum (CC0 1.0), via Openverse
Zeit ist die einzige Ressource, die sich nicht nachbestellen lässt. Fast jede Organisation, die wir mit Xircuit begleiten, verwaltet sie trotzdem an vier oder fünf verschiedenen Stellen: ein Buchungstool für Termine, eine Excel-Tabelle für die Trainerstunden, eine WhatsApp-Gruppe für das nächste Vereinsfest. Sobald jemand in mehr als einer dieser Welten aktiv ist, wird aus der Übersicht ein Puzzle, dessen Teile nie ganz zusammenpassen.
Diese Woche geht es um den Versuch, dieses Puzzle aufzulösen. Ich erkläre, wie der Kalender in Xircuit aufgebaut ist, warum er drei sehr unterschiedliche Arten von Terminen unter ein Dach bringt und welche Bausteine im Hintergrund dafür sorgen, dass eine Buchung überhaupt zustande kommt.
Drei Quellen, eine Ansicht
Der Kalender lebt unter /calendar, und seine zentrale Aufgabe ist banal und schwierig zugleich: Er führt drei Quellen zusammen. Terminbuchungen, Personal-Training-Sessions und Vereins-Events landen in derselben Ansicht, obwohl sie aus völlig verschiedenen Ecken der Plattform stammen und intern auch verschieden modelliert sind.
Warum überhaupt eine Vereinigung? Weil die Trennung ein technisches Artefakt ist, kein Bedürfnis der Nutzerinnen und Nutzer. Für eine Trainerin, die vormittags Einzelstunden gibt und abends ein Vereinstraining leitet, sind das schlicht zwei Einträge am selben Tag. Dass der eine aus dem Buchungssystem und der andere aus der Vereinsverwaltung kommt, darf sie nicht interessieren müssen. Der Kalender abstrahiert diese Herkunft weg und zeigt einen einheitlichen Strom von Terminen, sortiert nach Zeit statt nach Ursprung.
Technisch ist das eine Union über drei Datenquellen mit unterschiedlichen Formen, die auf ein gemeinsames Anzeigemodell projiziert werden. Jede Quelle bringt ihre eigenen Felder mit — eine Buchung kennt eine Ressource und einen Service, ein Vereins-Event eine Teilnehmerliste — aber alle teilen sich das Minimum, das der Kalender braucht: Titel, Zeitfenster, Organisation und einen Typ, an dem das UI erkennt, wie der Eintrag zu behandeln ist.
Selbstbuchung rund um die Uhr
Die erste Quelle ist die Online-Terminbuchung, und sie ist zugleich diejenige, die den meisten Alltagsschmerz nimmt. Online-Terminbuchung heißt bei uns dreierlei: Selbstbuchung rund um die Uhr, automatische Erinnerungen und ein konfliktfreier Kalender. Diese drei Eigenschaften klingen nach Selbstverständlichkeiten, aber jede einzelne hat im Hintergrund ihren Preis.
Selbstbuchung rund um die Uhr bedeutet, dass niemand mehr zurückrufen muss. Eine Kundin sieht die freien Slots, wählt einen aus und ist fertig — um drei Uhr nachts genauso wie zur Mittagszeit. Damit das funktioniert, muss der freie Slot in dem Moment auch wirklich frei sein, und er muss es bleiben, bis die Buchung abgeschlossen ist. Genau das meint der konfliktfreie Kalender: keine Doppelbelegung, weil das System die Verfügbarkeit prüft, bevor es einen Termin bestätigt, und den Slot dann verbindlich blockt.
Die automatischen Erinnerungen sind das dritte Element und der stille Held gegen No-Shows. Statt dass jemand händisch am Vortag alle Termine durchtelefoniert, verschickt die Plattform die Erinnerung von selbst. Das ist einer der Punkte, an denen sich die Architektur auszahlt: Erinnerungen laufen als Hintergrundprozess über einen eigenen Worker, entkoppelt von der Web-Oberfläche, damit ein hängender Versand niemals die Buchung selbst ausbremst.
Die Bausteine hinter der Buchung
Damit eine Selbstbuchung überhaupt stattfinden kann, braucht es mehr als einen Klick. Drei Bausteine bilden das Fundament: buchbare Ressourcen, ein Servicekatalog und die Personalverfügbarkeit. Erst ihr Zusammenspiel ergibt einen buchbaren Slot.
- Buchbare Ressourcen sind das, was belegt wird — ein Behandlungsraum, ein Gerät, ein Platz. Eine Ressource kann nur einmal gleichzeitig vergeben werden, und genau daraus entsteht der Konflikt, den der Kalender vermeiden muss.
- Der Servicekatalog definiert, was gebucht werden kann, und mit welcher Dauer. Eine 30-minütige Erstberatung und eine 90-minütige Behandlung sind zwei Einträge im Katalog, und ihre Länge bestimmt, wie das System die freien Zeitfenster zuschneidet.
- Die Personalverfügbarkeit legt fest, wer wann anbietet. Ohne eine verfügbare Person gibt es keinen buchbaren Slot, selbst wenn Raum und Service frei wären.
Die eigentliche Berechnung eines freien Slots ist die Schnittmenge dieser drei Dimensionen: eine Zeit, in der die Person verfügbar ist, die Ressource frei ist und der gewünschte Service in das Fenster passt. Das klingt einfach, ist in der Praxis aber die Stelle, an der die meisten Buchungssysteme entweder zu viel oder zu wenig anbieten. Ich habe bewusst darauf geachtet, dass diese Logik serverseitig und autoritativ ist — das UI schlägt Slots vor, aber die verbindliche Prüfung passiert erst beim Bestätigen, damit zwei gleichzeitige Buchungen nicht denselben Slot erwischen.
Foto: Rawpixel (CC0 1.0), via Openverse
RSVP und Warteliste für Vereins-Events
Die dritte Quelle sind die Vereins-Events, und sie folgen einer anderen Logik als Einzelbuchungen. Ein Termin bei der Trainerin gehört einer Person; ein Vereinsfest oder eine Wanderung gehört vielen. Deshalb unterstützen Vereins-Events RSVP und Warteliste — damit begrenzte Plätze fair vergeben werden.
RSVP heißt, dass Mitglieder verbindlich zu- oder absagen, bevor der Termin stattfindet. Das gibt der Organisation Planungssicherheit: Sie weiß, ob fünf oder fünfzig Leute kommen, und kann entsprechend Räume, Verpflegung oder Material vorbereiten. Sobald die Zahl der Zusagen die Kapazität erreicht, greift die Warteliste. Wer sich danach anmeldet, rückt automatisch nach, wenn jemand vorher abspringt — nach der Reihenfolge des Eintrags, nicht nach Zufall oder danach, wer zuerst wieder auf „aktualisieren" drückt.
Die Warteliste ist bewusst als faire, deterministische Reihenfolge gebaut. Fairness ist hier kein weiches Wort, sondern eine konkrete Anforderung: Ein Platz, der frei wird, muss an die Person gehen, die als Nächste dran ist, und dieser Übergang muss nachvollziehbar sein. Das ist ein anderer Umgang mit Knappheit als bei der Einzelbuchung, wo ein belegter Slot einfach verschwindet. Beim Vereins-Event bleibt der Andrang sichtbar, und die Warteliste macht ihn steuerbar.
Branchenübergreifend gedacht
Der vielleicht wichtigste Entscheid steckt nicht in einer einzelnen Funktion, sondern im Zuschnitt der Ansicht: Sie ist branchenübergreifend. Wer in mehreren Organisationen aktiv ist, sieht alle Termine an einem Ort. Das ist kein Nebeneffekt, sondern der eigentliche Grund, die drei Quellen zusammenzuführen.
Menschen leben selten in nur einer Organisation. Dieselbe Person ist Kundin in einem Studio, Mitglied in einem Verein und vielleicht noch Klientin bei einer Therapeutin. In den meisten Systemen bedeutet das drei getrennte Logins und drei getrennte Kalender. Xircuit dreht das um: Die Person steht im Mittelpunkt, und der Kalender zieht ihre Termine aus allen Organisationen zusammen, in denen sie eine Rolle hat. Buchung hier, Vereins-Event dort, PT-Session woanders — alles in einem chronologischen Bild.
Möglich wird das, weil die Zugehörigkeit zu einer Organisation in Xircuit ohnehin ein zentrales Konzept ist. Der Kalender fragt nicht „welche Termine gibt es in dieser Organisation", sondern „welche Termine betreffen diese Person, über alle ihre Mitgliedschaften hinweg". Das ist ein kleiner Perspektivwechsel mit großer Wirkung, und es ist der Punkt, an dem sich die branchenübergreifende Idee der Plattform am deutlichsten zeigt.
Was kommt als Nächstes?
Nächste Woche: eine Support-Plattform mit Wissensdatenbank, Tickets und eingehenden E-Mails, die zu Tickets werden.
Kommentare
Noch keine Kommentare. Teilen Sie als Erste(r) Ihre Gedanken!
Kommentar hinterlassen