Meeting Room Booking

Coworking meeting room reservation with room cards showing capacity, equipment icons, hourly pricing, time range selector, attendee count, and total cost. Office and coworking space booking flow.

PRO

Booking10: Meeting Room Booking

A single-column coworking room reservation card: a header showing the space name, a location badge, and a three-cell summary of date, an attendee stepper, and the active duration, above a time-range tab selector, a divided list of room rows (each with capacity, equipment chips, hourly price, and a radio-style select indicator), closing on a sticky footer that prices the current pick and offers a reserve button.

Upgrade to Pro

Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.

Installation

Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/booking10?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/booking10?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the block to components/beste/block/booking10.tsx, plus the badge, button, and tabs shadcn/ui primitives it uses for the location and status badges, the reserve button, and the duration selector.

Quick start

The installed file exports booking10Demo alongside the block: the exact props behind the preview above. Spread it to get a working room booking card in one line.

tsx
import { Booking10, booking10Demo } from "@/components/beste/block/booking10";

export default function BookingPage() {
  return <Booking10 {...booking10Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { Monitor, Video, Wifi } from "lucide-react";
import { Booking10 } from "@/components/beste/block/booking10";

export default function BookingPage() {
  return (
    <Booking10
      badge={{ label: "Workspace", variant: "secondary" }}
      heading="Reserve your <strong>meeting room</strong>"
      spaceName="Vertex Coworking"
      location="Floor 12"
      date="April 18, 2026"
      currency="$"
      timeRanges={[
        { label: "1 hour", hours: 1 },
        { label: "Half day", hours: 4 },
      ]}
      rooms={[
        {
          name: "Focus Pod",
          floor: "12th Floor",
          capacity: 4,
          pricePerHour: 25,
          equipment: [
            { icon: Monitor, label: "Display" },
            { icon: Wifi, label: "WiFi" },
          ],
          available: true,
        },
      ]}
      labels={{ capacityPrefix: "Up to", perHourLabel: "/ hour", reserveButton: "Reserve Room" }}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string; variant?: "default" | "secondary" | "outline" }Centered eyebrow badge above the heading
headingstringSection heading, supports inline <strong>
descriptionstringMuted paragraph under the heading
spaceNamestringTitle shown in the card header
locationstringOutline badge with a pin icon in the card header
datestringDisplay string shown in the date summary cell
currencystring"$"Symbol prefixed to every price
roomsMeetingRoom[][]Rows rendered in the divided room list
timeRangesTimeRange[][]Duration options rendered as tabs
labelsBooking10Labels{}Static copy for the summary cells, badges, and button
classNamestringExtra classes for the outer <section>
ts
type MeetingRoom = {
  name: string;
  floor: string;
  capacity: number;
  pricePerHour: number;
  equipment: { icon: LucideIcon; label: string }[];
  available?: boolean;
};

type TimeRange = {
  label: string;
  hours: number;
};

type Booking10Labels = {
  dateLabel?: string;
  attendeesLabel?: string;
  durationLabel?: string;
  bookedBadge?: string;
  maxPrefix?: string;
  capacityPrefix?: string;
  perHourLabel?: string;
  noSelection?: string;
  reserveButton?: string;
};

Behavior notes

More Booking blocks

View all Booking
PRO

booking7

Hotel Room Booking

Hotel room selection with room type cards showing images, amenity icons, guest capacity, price per night, check-in/check-out date picker, guest counter, and total price summary.

PRO

booking6

Restaurant Reservation

Restaurant table reservation with guest count selector, date/time picker, seating preference (indoor/outdoor/bar), special requests textarea, and booking summary. Fine dining reservation flow.

PRO

booking9

Event Ticket Booking

Event ticket selection with event banner, date/venue info, ticket tier cards (General/VIP/Backstage) with perks list, quantity selector, and order total. Concert and conference ticket flow.

PRO

booking8

Flight Booking

Flight search results with airline logos, departure/arrival times, duration, stops, class selector (economy/business/first), baggage info, and price comparison. Airline ticket booking flow.

PRO

booking2

Reservation Summary

Booking confirmation card with service details, date/time, provider info with avatar, price breakdown with subtotal/tax/discount/total, promo code input, cancellation policy, and confirm CTA.

PRO

booking19

Multi-step Booking Wizard

Stepper-based booking flow with numbered progress dots, animated progress bar, and four steps: service selection, schedule, contact details, and review. Back/Next navigation, per-step validation, and a live summary.