Drie manieren om geboekt te worden.
Een tafel om 19:30, een huisje voor vier nachten, of veertig minuten bij een specifieke medewerker. Drie modi, elk met een eigen prijsopbouw en een eigen opvatting van wat beschikbaarheid betekent.

Het zijn niet dezelfde problemen.
Een restaurant wijst tafels toe op basis van het aantal gasten. Verhuur telt nachten tussen twee data. Een afspraak vraagt dat een specifieke persoon vrij is. Elk krijgt een eigen prijsstrategie in plaats van één gedeelde vol vertakkingen.
Zitplaatsen per tijdslot, met een aantal gasten en een duur, verdeeld over jouw tafels. Twee gezelschappen krijgen nooit dezelfde tafel.
Periodes met een prijs per nacht, minimale en maximale verblijfsduur, en check-in- en check-outtijden.
Een duur bij een met naam genoemde medewerker, met buffers tussen de slots zodat de dag niet aan elkaar vast geboekt raakt.
Elke modus heeft een resource van het juiste type nodig: een tafel, een eenheid, een persoon. Zonder die resource tekent de kalender zich wel maar biedt hij niets aan, en dat is verreweg de meest gemaakte inrichtingsfout.
Een reservering is een reeks stappen, geen statusveld.
Hij begint als een optie terwijl de gast nog aan het typen is, en beweegt alleen langs overgangen die de engine toestaat.
Beschikbaarheid komt uit weekregels, ingeperkt door de uitzonderingsperiodes die je toevoegt voor een sluiting of een besloten huur. Prijsregels kunnen de prijs laten meebewegen met de dag, het seizoen of de groepsgrootte.

Avonden, tickettypes en een deurlijst.
Een evenement heeft voorstellingen, dus je genereert een hele reeks in één keer in plaats van twaalf evenementen aan te maken. Elke voorstelling verkoopt tickettypes met eigen prijzen en contingenten, in hetzelfde winkelmandje als je producten.
Uitgegeven tickets dragen een code die als QR wordt getoond, en check-in is een eigen dienst. Beschikbaarheid wordt live opgehaald en nooit in de gecachete pagina geschreven, zodat een gepubliceerde pagina nooit beweert dat een plek vrij is terwijl dat niet zo is.
Richt één dienst in en neem een testreservering aan.
Denk aan de resource. Een dienst zonder tafel, eenheid of persoon erachter toont een kalender waar niets in staat.