shadcn.io is not affiliated with official shadcn/ui
Sales Call Scheduler Pricing Block for React
Enterprise pricing by conversation: a scheduler with a strip of the next five working days and a grid of time slots in the visitor's own time zone, then a confirmation.
Installation
Overview
Let enterprise buyers book the call instead of filling in a form. The page's side rails and one top rule frame the section, and a single hairline splits it in two, meeting the top rule with a plus mark. The left half has the headline, one sentence and three numbered steps for what happens next. The right half is the scheduler, a card in a card: a strip of the next five working days, a grid of that day's open time slots, a work email field and one Shine Button that names the chosen time, "Book Tue, Oct 13 at 10:00 AM". It is the only control in the primary colour; the selected day and slot are filled with the foreground colour. Days and slots are native radio buttons, so the arrow keys move between them and nothing needs a script to be a group. Dates and the time zone come from the visitor's browser, so the strip is never stale. Booking swaps the form for a confirmation that takes focus and offers another time. Built with Guides, Frame, Field, Input, Button, Shine Button and Lucide icons, with CSS transitions only. For sales-led pricing pages, enterprise tiers and demo or discovery-call booking.
FAQ
Where do the dates and the time zone come from?
From the visitor's browser, in an effect after the page loads: the next five working days after today, and the zone name from Intl.DateTimeFormat. Before that, grey cells hold the strip's and the grid's size, so nothing shifts and the static page never shows a past date. Times are written in 12-hour English; change the labels in SLOTS and the formats in nextDays for your locale.
How do I connect it to a real calendar?
Replace slotsOn with the open slots your calendar service returns for the chosen day, and fill book with the request that creates the booking. Send the day's id, the slot's id and the visitor's zone name (zone), and let your server convert the time with the zone, since the slots here are the visitor's local times. Show the confirmation once the server accepts the booking, and keep the form with an error message if the slot was just taken.
Is the scheduler accessible?
Yes. The days and the times are two groups of native radio buttons, each in a fieldset with a legend, so Tab reaches the selected one and the arrow keys move and select; the selected chip and the focused chip are visibly different. The email field has a visible label, is required and is an email input with autocomplete. Once the call is booked, focus moves to the "You're booked" heading, so screen readers read the confirmation at once; Pick another time brings the form back and moves focus to its heading. Focus never moves on its own when the page loads.
Why doesn't the card change size between the form and the confirmation?
The form and the confirmation sit in the same grid cell, so the cell is always as tall as the form. When the call is booked, the form stays in place but is hidden and made inert, so it can't be focused or read, and the confirmation fades in over it. Under reduced motion it appears without the fade.
How does it adapt to phones?
From the lg breakpoint the pitch and the scheduler sit side by side. Below it the order is the headline, the scheduler, then the three steps, so the button is reached within a screen and a half. The five days stay in one row at 320 pixels, and the time slots go from four to three columns, wrapping onto as many rows as they need.
When is a scheduler better than a contact form?
Use a scheduler when the next step is a call and buyers expect to pick the time: it removes the back-and-forth emails and shows that someone is ready to talk. Use a form when sales needs to qualify requests first or route them by size, and let the form's answers decide who calls.
Related
- Pro
Custom Quote Pricing
Sales and partnersA quote request for a security platform: the pitch and three ruled points beside a short form whose submit button sits inside the first screen, and a confirmation that takes focus once it's sent.
- Pro
Enterprise Custom Pricing
Sales and partnersAn enterprise pricing band for a cloud that follows the page theme: the title beside a raised card with a Custom price and a call to sales, then three columns of capabilities and customer wordmarks, with the list collapsed on phones.
- Pro
Negotiable Pricing
CalculatorsPricing that starts from a range: seats and contract length produce a per-seat estimate drawn as a band on a scale with the list price marked, and a field for your own target price that sends it to sales.
- 123123Pro
Split Layout Pricing
Single planA product-led split: a mock of the app built from our own components with numbered callouts on it, matching a 'what you get' list, beside the one plan as a card in a card with a monthly and yearly switch.
- Pro
Comparison Table Pricing
Comparison tablesFour plans compared feature by feature in one table whose hairlines meet the page rails, with a billing switch, a tinted popular column and, on a phone, a plan switch that keeps the feature column beside one plan.
- Pro
Team Size Slider With Volume Discounts
Seats and teamsA seat calculator: a slider sets the team size with its count riding the thumb, ticks at the 10, 25 and 50 seat discounts, shortcuts to them, and a panel that rolls the seat price and monthly total.