Appointment List
A two-section appointment list: Upcoming and Past, each grouped under date headings. Every row shows the service name, provider avatar, time, duration, and a status badge (confirmed, pending, or cancelled), plus Reschedule and Cancel buttons on upcoming appointments.
Docs
Installation
A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its avatar, avatar-initials, badge, button dependencies and any missing npm packages, and installs them straight into your project.
npx shadcn add https://staaarter.com/r/appointment-list.jsonPrefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/booking/booking3.tsx instead.
Usage
The file also exports booking3Demo, the exact props behind the preview above. Spread it to get a working section in one line, then replace it with your own data.
import { Booking3, booking3Demo } from "@/components/blocks/booking/booking3"; export default function Page() { return <Booking3 {...booking3Demo} />; }
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| heading | string | "Your appointments" | Section heading. |
| description | string | "Keep track of what's coming up and what you've already been to." | Short subheading under the heading. |
| upcoming | Booking3DateGroup[] | [] | Upcoming appointments, grouped by date. |
| past | Booking3DateGroup[] | [] | Past appointments, grouped by date. |
| className | string | none | Extra classes for the outer section element. |
Types
type Booking3Status = "confirmed" | "pending" | "cancelled"; interface Booking3Appointment { id: string; service: string; providerName: string; providerAvatarUrl?: string; time: string; duration: string; status: Booking3Status; } interface Booking3DateGroup { date: string; appointments: Booking3Appointment[]; }
Behavior notes
- This is a static server component: Reschedule and Cancel are plain buttons with no click handlers, nothing is actually rescheduled or cancelled.
- Date headings and grouping are just how the demo data is shaped, not computed from real dates.
More Booking Blocks
View all →date-time-picker
Date & Time Picker
Split-panel scheduler: a real monthly calendar on the left, morning/afternoon time slots on the right, and a live booking summary footer.
reservation-summary
Reservation Summary
A static booking confirmation card with service, date/time, provider avatar, price breakdown, promo code field, and cancellation policy.
service-selector
Service Selector
Category-tabbed grid of bookable services with icon, description, duration, and price.
provider-picker
Provider Picker
A selectable grid of staff/provider cards with rating, reviews, availability, and an Any Provider fallback.
restaurant-reservation
Restaurant Reservation
Table reservation form with a guest stepper, date/time inputs, seating pills, and a live summary panel.
hotel-room-booking
Hotel Room Booking
Selectable room cards with photos and amenities, plus check-in/out dates and a live-computed total.