Multi-City Tour DatesPRO

A tour schedule listing each city as a linked hairline row with its venue, date, and remaining seats, muting the sold-out stops, beside a sticky tile that floats a live locations card.

Event98: Multi-City Tour Dates

A tour schedule listing each city as a linked hairline row with its venue, date and remaining seats, muting the sold-out stops, beside a sticky tile that floats a live locations card.

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.

Upgrade Now

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/event98?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

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

This installs the block to components/beste/block/event98.tsx, the location8 coverage piece it floats on the tile (installed to components/beste/piece/location8.tsx), and the badge23 and button21 components it uses for the eyebrow and the action.

Quick start

The installed file exports event98Demo alongside the block: the exact props behind the preview above. Spread it to get a working schedule in one line.

tsx
import { Event98, event98Demo } from "@/components/beste/block/event98";

export default function TourPage() {
  return <Event98 {...event98Demo} />;
}

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

tsx
import { Event98 } from "@/components/beste/block/event98";
import { Location8 } from "@/components/beste/piece/location8";

export default function TourPage() {
  return (
    <Event98
      badge={{ label: "On the road" }}
      heading="Six evenings, six cities, and the same forty chairs"
      description="We bring the roundtable to you. Free, and dinner is included."
      stops={[
        {
          city: "Bristol",
          venue: "The Old Print Works",
          date: "18 June",
          day: "Thursday",
          seats: "12 of 40 left",
          href: "/tour/bristol",
        },
        {
          city: "Leeds",
          venue: "Duke Studios",
          date: "25 June",
          day: "Thursday",
          seats: "Sold out",
          soldOut: true,
          href: "/tour/leeds",
        },
      ]}
      soldOutLabel="Join the waiting list"
      media={
        <Location8
          title="Where we are heading"
          region="Summer 2026"
          sites={[{ name: "Bristol", meta: "18 June", value: "12 left" }]}
          total="6"
          totalLabel="cities, 240 seats in total"
        />
      }
      image={{ src: "/backdrops/green.jpg", alt: "Deep green gradient backdrop" }}
      mediaCaption="If your city is not on the list, tell us and we will add one."
      button={{ label: "Suggest a city", href: "/tour/suggest" }}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string }Eyebrow above the hairline rule, rendered through Badge23
headingstringSection heading in the left column of the header
descriptionstringSupporting paragraph, right-aligned from md up
stopsStop[][]Tour dates, in the order they should read
soldOutLabelstringCall to action shown on sold-out rows
mediaReactNodeLive asset on the sticky tile, location8 in the demo
image{ src: string; alt: string }Backdrop behind the media tile
mediaCaptionstringCaption under the tile
button{ label: string; href: string }Outline action under the caption
classNamestringExtra classes for the outer section
ts
type ActionLink = {
  label: string;
  href: string;
};

type Stop = {
  city: string;
  venue: string;
  date: string;
  day: string;
  seats: string;
  soldOut?: boolean;
  href: string;
};

Behavior notes

More Event blocks

View all Event
PRO

event102

Open Hours Session Rows

Upcoming sessions as hairline rows, each opening with the date set as a figure, then the session and what it covers, with its seat state and a booking link on the end.

PRO

event14

Speaker Sessions Schedule

Speaker cards displaying multiple sessions per presenter with times, locations, and session types. Perfect for multi-track conferences with recurring speakers.

PRO

event94

Featured Session Schedule

An events section that opens with a split featured card pairing a photo with date, time, and format lines, then lists the rest of the schedule as rows separated by hairlines, each with a bordered date tile, host meta, seat count, and register action.

PRO

event95

Filterable Day Agenda

A conference agenda whose track pills are derived from the sessions and carry live counts, narrowing a timed list of hairline rows that align the slot, the session, and its speaker and room.

PRO

event27

Breaks and Networking Schedule

Schedule cards for coffee breaks, lunch, and social events with timing, locations, and activity highlights. Perfect for showing networking opportunities.

PRO

event97

Recorded Sessions Archive

A past events archive leading with an image tile that floats a recording card, then listing every earlier session as linked hairline rows with its date, place, and running time.

Markdown version