Appbricx
Features

Build

  • Coding agents and MCP
  • Verify testing
  • Builder console

Data

  • Postgres database
  • Data API
  • Realtime

Users

  • Row-level security
  • Sign-in and auth
  • Payments

Logic

  • Workflows and jobs
  • AI in your app
  • Integrations

Ship and own

  • Backups and rollback
  • Hosting and domains
  • Self-host and export
All features
ShowcaseTemplatesPricingDocs
Log inStart free
  • Features
  • Showcase
  • Templates
  • Pricing
  • Docs
  • Log in

Build

  • Coding agents and MCP
  • Verify testing
  • Builder console

Data

  • Postgres database
  • Data API
  • Realtime

Users

  • Row-level security
  • Sign-in and auth
  • Payments

Logic

  • Workflows and jobs
  • AI in your app
  • Integrations

Ship and own

  • Backups and rollback
  • Hosting and domains
  • Self-host and export
  1. Home
  2. Templates
  3. Booking calendar

Block · Bookings and scheduling

Booking calendar

Adds time slots attached to whatever people book (a room, a coach, a class type, a court) and reservations against them. People pick a day, see places left and book; they can cancel their own upcoming bookings. Staff manage times on a week calendar and book people in by hand. Rules refuse a full slot, a slot that has started, two overlapping bookings for the same person, and two overlapping slots for the same resource.

Use in AppbricxFree. Already have an account? Log in
View the files

use_template { slug: "booking-calendar" } adds

Tables
slot, reservation
Components
SlotPicker, MyReservations
Pages
/book, /my-bookings, /time-slots, /reservations
Workflows
reservation-count, reservation-cancel-request, reservation-free-places, slot-organisation
Rules
3 on slot, 3 on reservation

What it adds to your app

Tables slot and reservation. SlotPicker and MyReservations components with their pages. Staff week calendar and reservations list. Workflows that keep places left up to date.

Tables

  • slot title, resource_id, starts_at, ends_at, capacity, booked, status, note, …
  • reservation slot_id, booker_id, seats, status, cancel_request, note

Pages

  • /book Book (‹booker_role›)
  • /my-bookings My bookings (‹booker_role›)
  • /time-slots Time slots (@staff)
  • /reservations Reservations (@staff)

Workflows

  • reservation-count Count booked places on the time slot. On reservation created
  • reservation-cancel-request Cancel a booking when its person asks. On reservation updated
  • reservation-free-places Free the places when a booking is cancelled. On reservation updated
  • slot-organisation Give each time slot the organisation of what is booked. On slot created

Components

  • SlotPicker Pick a day and book an open time slot, with places left and a seat count
  • MyReservations The signed-in person's upcoming bookings with cancel, and their history

Rules on every write

  • slot A time slot ends after it starts and holds 1 to 500 people.
  • slot That overlaps another time for the same resource.
  • slot A time slot belongs to the organisation of what is booked.
  • reservation That time is full.
  • reservation You already have a booking at that time.
  • reservation You can cancel a booking, not change it.

Where it attaches

Params point the template at your own tables and roles. Leave out the ones with defaults; a wrong one is refused with the options your app has.

ParamWhat it isExample
attach_toThe table of things people book time with (rooms, coaches, courts, services).room
booker_roleThe role whose people make bookings (their own table is the booker). Optional.member
org_fieldOptional: the ref on that table naming its organisation (from organisations-and-teams). Time slots then belong to that organisation and only its members see and book them. Optional.organisation_id

Use with your coding agent

  1. Connect the Appbricx MCP server to Claude Code, Cursor or any MCP client (quickstart).
  2. Paste the prompt. The agent reads the template, previews the merge with dry_run and shows you the diff.
  3. It applies to dev. Check it, then deploy when you are happy.
Prompt
Add the Booking calendar template (slug "booking-calendar") to my Appbricx project. Read it with get_template, run use_template with dry_run first and show me the diff, then apply it. Ask me where it attaches if you can't tell from my contract (attach_to: what is booked; booker_role: who books; org_field: organisation (optional)).
MCP call
{
  "tool": "use_template",
  "arguments": {
    "slug": "booking-calendar",
    "project_id": "<your project id>",
    "params": {
      "attach_to": "room",
      "booker_role": "member",
      "org_field": "organisation_id"
    },
    "dry_run": true
  }
}
CLI
appbricx templates use booking-calendar --param attach_to=room --param booker_role=member --param org_field=organisation_id --dry-run

Goes well with

  • Studio Bookings

    App. Class booking for a yoga and pilates studio: members book in two taps, instructors run the schedule.

    memberinstructorsessionbookingClassSchedule
  • Booking confirmation and reminder

    Workflow. Emails a confirmation when a booking is made and a reminder the day before it starts.

    ‹booking›.reminder_sent_atbooking-confirmationbooking-reminder
  • Organisations and teams

    Block. Let people create organisations, form teams, invite colleagues by email and give them owner, admin or member roles.

    organisationteammembershipinvitation‹attach_to›.organisation_id

Your agent adds it. Appbricx runs it.

Start freeAll templates
Appbricx

The backend, runtime and hosting for apps your coding agent builds. On our cloud, in yours, or on your own servers.

Features

Coding agents and MCPVerify testingBuilder consolePostgres databaseData APIRealtimeRow-level securitySign-in and authPaymentsWorkflows and jobsAI in your appIntegrationsBackups and rollbackHosting and domainsSelf-host and exportAll features

Product

ShowcaseTemplatesPricingFor coding agentsPrivate cloudBring your own AI keyFAQ

Compare

Appbricx vs SupabaseLovable alternativeBolt alternativeFor freelancersFor agencies

Resources

DocumentationReferenceBlogSupportContact

© 2026 Appbricx. All rights reserved.

TermsPrivacyCookiesAcceptable Use