---
title: "Booking Module"
module_id: "bookings"
version: "1.0.0"
category: "data"
autonomy: "config-required"
generated: true
generated_at: "2026-05-04"
---

# Booking

> Create and manage bookings/appointments

Ships with **5 agent skills**, **2 public blocks**, an **admin UI**.

## Quick Facts

| Property | Value |
|----------|-------|
| **Module ID** | `bookings` |
| **Version** | 1.0.0 |
| **Category** | data |
| **Autonomy** | config-required |
| **Core** | No |
| **Capabilities** | `content:receive`, `data:write`, `webhook:trigger` |
| **MCP-exposed skills** | 5 |
| **Owns tables** | — |

## Integrations

**Optional:** `resend`, `stripe`

## Skills

These skills are seeded into `agent_skills` when the module is enabled and exposed via MCP.
External operators (FlowPilot, OpenClaw, Claude Desktop, custom MCP clients) can call them directly.

| Skill | Scope | Description |
|-------|-------|-------------|
| `book_appointment` | both | Create a booking for a customer. Use when: a customer wants to schedule an appointment; confirming a service reservation; creating a booking from a chat conversation. NOT for: checking availability… |
| `check_availability` | both | Check booking availability for a specific date. Use when: a customer wants to know if a slot is open; determining if a service can be booked; verifying potential appointment times. NOT for: creatin… |
| `browse_services` | both | List available booking services. Use when: a user asks what services are offered; displaying service options; selecting a service for booking. NOT for: checking availability (check_availability); m… |
| `manage_booking_availability` | internal | Manage booking hours and blocked dates. Use when: setting up service availability; blocking holiday dates; adjusting operating hours. NOT for: checking availability (check_availability); creating b… |
| `manage_bookings` | internal | List, view, update or cancel bookings. Use when: reviewing scheduled appointments; modifying a booking time; cancelling an appointment. NOT for: managing availability settings (manage_booking_avail… |

## File Map

| Purpose | Path |
|---------|------|
| Module definition | `src/lib/modules/booking-module.ts` |
| Hook | `src/hooks/useBookings.ts` |
| Admin page | `src/pages/admin/BookingsPage.tsx` |
| Public block | `src/components/public/blocks/BookingBlock.tsx` |
| Public block | `src/components/public/blocks/SmartBookingBlock.tsx` |

## Contributing

To enhance this module, see [Contributing Guide](../contributing/contributing.md).

Key rules:
- Follow `ModuleDefinition<I, O>` contract pattern
- All schema changes require idempotent migrations
- Skills must be self-describing ([Law 2](../concepts/openclaw-law.md))
- Blocks are interfaces, not pipelines ([Law 3](../concepts/openclaw-law.md))
- New skills must pass the [Agent Contract Integrity](../architecture/agent-contract-integrity.md) checklist (`bun run lint:skills`)

---

*This file is auto-generated by `scripts/generate-module-docs.ts`. Do not edit manually — re-run the script after changing the module definition.*