Developer quickstart
Install a scheduler surface, then make it yours.
Bravo Calendar is designed as composable React UI plus calendar math and scheduling models. The business site uses the local package directly so demos stay honest.
Package availability
Public docs show the intended customer package name, @bravocalendar/react. The live marketing app still runs against the private local workspace package while registry access and early customer fulfillment are finalized.
Install
pnpm add @bravocalendar/react
import { CalendarRoot } from "@bravocalendar/react";
import "@bravocalendar/react/calendar.css";Render
<CalendarRoot
events={events}
resources={resources}
view="timeline"
eventEditing
showResourceFilters
onEventCreate={handleCreate}
onEventUpdate={handleUpdate}
onEventDelete={handleDelete}
/>Customize
- Use `renderEvent` for job cards, appointment cards, CRM follow-ups, or product-specific metadata.
- Use `renderResourceHeader` for crews, rooms, providers, machines, or territory lanes.
- Pass custom button components so the calendar fits a shadcn-style design system.
- Use CSS variables and class names for theming without forking package styles.
- Handle `onEventUpdate` to persist moves, resizes, resource changes, and editor saves.
Validation Hooks
Scheduling rules live in the app. Use unavailable ranges, disabled resources, locked events, and rejected update callbacks to keep the UI honest about business constraints.
Customer Access
Paid customers get account-gated setup instructions after Stripe and Clerk attach the license to a buyer identity. First customers can still be invited manually to GitHub Packages while automated package fulfillment is refined.
# Customer .npmrc @bravocalendar:registry=https://npm.pkg.github.com //npm.pkg.github.com/:_authToken=YOUR_GITHUB_PACKAGES_TOKEN
Known Limits
- React DOM is the supported UI target. React Native should be a later sibling package.
- Virtualized mega-schedules are on the roadmap; current demos focus on practical SaaS boards.
- Real package access is still private while the business repo and license flow are being set up.