Skip to contentFacade Pro is $149 once during launch, then $199. Lifetime updates.
Facade
Browse the library

Components / Forms

Booking slots

Pro

Appointment picker with a 14 day date strip, grouped time slots, summary and confirm callback.

View as Markdownlucide-reactmotion

Installation

$npx shadcn@latest add @facade/booking-slots

Pro items install from the private @facade registry with your license key. Set it up once.

Usage

import { BookingSlots } from "@/components/facade/booking-slots";

export default function Page() {
  return <BookingSlots />;
}

Props

BookingSlotsProps is exported, so you can extend or wrap it. Every prop has a default; <BookingSlots /> renders the example above.

Props of BookingSlots
PropTypeDescription
serviceNamestringName of the service being booked, shown in the summary.
durationMinutesnumberDuration in minutes, shown in the summary.
priceLabelstringPrice label, e.g. "$85".
daysnumberHow many days to show in the strip.
getSlots(date: Date) => string[]Return all bookable times ("HH:mm") for a date. Default: 9 AM to 7:30 PM every 30 min.
isSlotDisabled(date: Date, time: string) => booleanReturn true when a time is taken. Default: a stable pseudo-random pattern.
closedWeekdaysnumber[]Days of week that are closed (0 = Sunday).
confirmLabelstring
onConfirm(selection: BookingSelection) => void
classNamestring

Ask your agent

With the Facade MCP server connected, this prompt is enough:

Add the Facade booking slots to this page and adapt the copy to our business.