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.
Recently Shipped
Section titled “Recently Shipped”Walk-In Queue & Hybrid Scheduling (E-19)
Section titled “Walk-In Queue & Hybrid Scheduling (E-19)”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 (queued → in_service → completed/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.
Slot Waitlist (E-17)
Section titled “Slot Waitlist (E-17)”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.
Planned features
Section titled “Planned features”- Waitlist data model —
waitlist_entriestable with queue position, status tracking (waiting,offered,claimed,expired,cancelled), and configurable offer expiry - Core queue logic —
joinWaitlist(),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
Configuration
Section titled “Configuration”Per event type: waitlist_enabled (boolean), waitlist_max_size (integer), waitlist_offer_minutes (default: 30 minutes to claim).
Dynamic & Peak/Off-Peak Pricing (E-18)
Section titled “Dynamic & Peak/Off-Peak Pricing (E-18)”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.
Planned features
Section titled “Planned features”- Pricing rules data model —
pricing_rulestable 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 engine —
computeSlotPrice()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 integration —
Slottype gainspriceCentsandappliedPricingRulesfields. Price is recalculated at booking time to prevent gaming - Surge pricing — Automatic price increase when available slots drop below a threshold
- Display modes —
show_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
Rule examples
Section titled “Rule examples”After 5pm weekdays: +25% surchargeWeekends: $120 flat rate (vs $80 base)Booked 7+ days ahead: 10% early bird discountLast 3 slots this week: +15% surge