Booking for Convex

Add appointments, room bookings or equipment reservations to a Convex app. @mrfinch/booking stores bookings and availability in an isolated Convex component. Use the included React Booker, or build your own interface against its API.

What you get

  • Availability from weekly schedules, date overrides and resource timezones.
  • Single-resource bookings and bundles with quantity-based equipment pools.
  • Booking confirmation, cancellation and rescheduling, including management links.
  • A React calendar, duration picker, booking form and live presence indicators.
  • Optional email notifications through Resend.

Your application decides who can book or administer each resource and which booking policies apply. The component checks and updates inventory atomically.

Three concepts

ConceptExample
Resource — what is being bookedA meeting room, a person, or a pool of ten cameras
Schedule — when it is availableMonday to Friday, 09:00–17:00 in Europe/Berlin
Event type — how it can be bookedA 30-minute meeting linked to that room

A resource must be linked to an event type before it can be booked. The concepts guide explains durations, quantities and timezones.

Start here

Follow the Quick Start to install the component and render a working booking page. You need a Convex app, Convex 1.46 or newer, and React if you use the included UI.

Prefer to explore first? Try the demo or run it locally. The hosted demo is a shared sandbox that resets every hour.

For custom integrations, see the backend API, React components and authorization guide.