Velocity X Components

Growth & Conversion

Demo Booking Card

An inline day-and-time picker for booking a demo call, showing every slot in the visitor's own detected timezone so nobody has to do the conversion math themselves. Submits the chosen slot to any scheduling backend and ends in a confirmed state.

Subscription Included with the Velocity Components subscription.
bash
$ velocityx add demo-booking-card

Built for react. Needs react already installed as a peer dependency. An Astro-only project needs @astrojs/react wired up first — this won't run on its own in plain Astro.

Full docs for Demo Booking Card →

Needs a licence key — subscribe here, then velocityx loginonce.

react v1.0.1 react
Demo Booking Card

Book a 30-minute demo

Pick a time that works for you — we'll send a calendar invite right away.

Times shown in UTC

Available times

30 min call

Props

NameTypeRequiredDefaultDescription
headlinestringNo'Book a 30-minute demo'
subheadstringNo"Pick a time that works for you — we'll send a calendar invite right away."
daysAheadnumberNo5
slotTimesstring[]No['09:00', '11:00', '13:30', '15:30']
durationMinutesnumberNo30
bookedSlotsstring[]No[]
onSubmit(slot: { startIso: string; timeZone: string }) => Promise<void> | voidNo
ctaLabelstringNo'Confirm booking'
confirmedHeadlinestringNo"You're booked."
confirmedBody(slot: Date) => stringNo(slot) => `We'll send a calendar invite for ${slot.toLocaleString(undefined, { weekday: 'long', month: 'short', day: 'numeric', hour: 'numeric', minute: '2-digit', })}.`
classNamestringNo''

File this creates

The CLI writes this path into your project, relative to its root — nothing else moves.

text
components/velocity/demo-booking-card/DemoBookingCard.tsx

Using the Demo Booking Card component

Install it with velocityx add demo-booking-card. The CLI writes the source straight into your project — no runtime dependency, no registry lock-in, and it themes itself from the same primary-*/accent-* scale as the rest of the library.

More from Growth & Conversion.