Skip to content

Upcoming Features

The Booking Kit has completed 18 epics covering the full booking system lifecycle, including the recently shipped Walk-In Queue (E-19) and Kiosk Mode (E-20). The following features are planned for upcoming releases.


Enables providers to accept walk-in customers alongside scheduled appointments. The provider or receptionist adds walk-ins on behalf of customers; the system auto-finds the next available gap and estimates wait time.

Shipped in core: addWalkIn(), estimateWaitTime(), findNextAvailableGap(), startService(), completeService(), markNoShow(), reorderQueue(), getQueueMetrics(), full walk-in state machine (queuedin_servicecompleted/no_show/cancelled), analytics helpers.

Shipped in registry/ui: <WalkInEntryForm />, <QueueDisplay />, <QueueManager />, <WalkInToggle />, <QueueTicket />.

Designed for barber shops, salons, clinics, and restaurants — any business serving both scheduled and walk-in customers.


Kiosk Mode & Interactive Schedule Management (E-20)

Section titled “Kiosk Mode & Interactive Schedule Management (E-20)”

A full-screen, Google Calendar-style interactive view for providers to manage their entire schedule from a single screen. Supports configurable event display, inline break/block creation, drag-and-drop rescheduling, and integrated walk-in queue management.

Shipped in core: validateKioskSettings(), resolveKioskSettings(), validateReschedule(), validateBreakBlock(), getMultiProviderView(), break/block management utilities.

Shipped in registry/ui: <KioskCalendar />, <KioskShell />, <KioskSettingsPanel />, <BreakBlockForm />, <KioskPinLock />.

Optimized for 10”+ tablets in landscape at reception desks, wall-mounted displays, and desktop use.


Release R6 · 26 story points · 5 user stories

When a slot is fully booked, customers can join a waitlist instead of seeing “unavailable.” On cancellation, the first person in the queue receives a time-limited offer to claim the slot.

  • Waitlist data modelwaitlist_entries table with queue position, status tracking (waiting, offered, claimed, expired, cancelled), and configurable offer expiry
  • Core queue logicjoinWaitlist(), offerSlotToNext(), claimWaitlistOffer(), expireOverdueOffers(), reorderQueue()
  • Cancellation-triggered offers — When a booking is cancelled, the system automatically offers the freed slot to the next person in the queue with a time-limited claim link
  • Cascading offers — If an offer expires, the system automatically moves to the next person
  • UI components<WaitlistButton /> on the slot picker, <WaitlistStatus /> for queue position, <WaitlistClaimPage /> for the claim flow, <WaitlistAdminList /> for provider management
  • Notifications — Offer email with claim link, confirmation on join, notification on claim, expiry notice

Per event type: waitlist_enabled (boolean), waitlist_max_size (integer), waitlist_offer_minutes (default: 30 minutes to claim).


Release R6 · 21 story points · 4 user stories

Enable providers to charge different prices based on time of day, day of week, and booking lead time. Designed for service businesses like barber shops that charge more for after-hours or weekend appointments.

  • Pricing rules data modelpricing_rules table with rule types: time_of_day, day_of_week, lead_time, surge. Each rule has priority ordering, absolute price override or percentage modifier, and JSONB conditions
  • Price computation enginecomputeSlotPrice() evaluates rules in priority order against slot time, day, and lead time. computePriceRange() returns min/max across all combinations. Pure functions, no DB calls
  • Slot engine integrationSlot type gains priceCents and appliedPricingRules fields. Price is recalculated at booking time to prevent gaming
  • Surge pricing — Automatic price increase when available slots drop below a threshold
  • Display modesshow_range (“$80-$120”), show_exact (per-slot price), show_from (“From $80”)
  • UI components<PricingRuleEditor /> for rule creation, <PricingRuleList /> with drag-to-reorder priority, <SlotPriceTag /> for the time slot picker, <PricingSummary /> for booking confirmation
After 5pm weekdays: +25% surcharge
Weekends: $120 flat rate (vs $80 base)
Booked 7+ days ahead: 10% early bird discount
Last 3 slots this week: +15% surge