# Bookings

> Booking lifecycle — pending, confirmed, rescheduled, cancelled — plus attendees, references, no-shows, and reminders.

- Skill: `builderio/bookings` (Agent Skill)
- Install (CLI): `npx skillmds@latest add builderio/bookings`
- Raw SKILL.md: https://api.skillmd.com/api/skills/builderio/bookings/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: Builder.io (https://skillmd.com/u/builderio)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/builderio/bookings

---


# Bookings

## Lifecycle

- **pending** — requires-confirmation event types start here
- **confirmed** — normal state
- **rescheduled** — the old booking after a reschedule (the new one is
  confirmed; `from_reschedule` links them)
- **cancelled** — either party cancelled
- **rejected** — pending was declined

## Reschedule vs cancel+rebook

The `reschedule-booking` action creates a new booking with a link back to
the old via `fromReschedule`. iCalUID is preserved across the reschedule
chain (RFC 5545), and `iCalSequence` is bumped.

## No-show

`mark-no-show` sets `noShow: true` on an attendee. Round-robin calibration
uses this to penalize hosts whose attendees no-show frequently.

## Cancel / reschedule tokens

Every booking has a `cancelToken` and `rescheduleToken` used in public
magic links sent to attendees. These let them manage the booking without
logging in.

## References

External system IDs: Google Calendar event id, Zoom meeting id, Daily.co
room name. Stored in `booking_references`, used during cancel/reschedule to
propagate changes back to the source system.

## ICS

`/booking/:uid.ics` returns the RFC 5545 calendar file. Used for
confirmation-email attachments and "Add to calendar" buttons.

