Bookings
Package docs status
Section titled “Package docs status”This page is generated from package source documentation in the Capell packages repository and the checked-in manifest. Source documentation is not distribution status. Before running a Composer command, verify that the exact package and compatible 1.x release are available through public Packagist or the authenticated marketplace account.
| Field | Value |
|---|---|
| Composer package | capell-app/bookings |
| Package slug | bookings |
| Product group | Capell Commerce |
| Tier | premium |
| Bundle | commerce |
| Runtime contexts | admin, console, frontend |
| Capell version | ^1.0 |
| Source repository | capell-app/packages |
| Source path | packages/bookings |
| Docs source | packages/bookings/docs |
| Manifest | capell.json |
What This Plugin Adds
Section titled “What This Plugin Adds”Bookings is an Available, Schema-owning Capell plugin in the Capell Commerce product group. It ships as capell-app/bookings and extends these surfaces: admin, console, frontend.
Bookings turns public appointment requests into an admin workflow with services, staff, locations, availability, confirmation, reminders, reviews, and waitlists.
Visitors submit an appointment request through the public booking route. Operators review the queue, confirm or cancel requests, and manage the availability data used to offer slots.
Evidence: capell.json, src/Actions/CreateAppointmentRequestAction.php, src/Filament/Resources/AppointmentRequests/AppointmentRequestResource.php, docs/overview.admin.md, docs/screenshots.json, src/Http/Controllers/StoreBookingRequestController.php, src/Actions/BuildAvailableBookingSlotsAction.php.
Status details:
- Status: Available
- Tier: premium
- Bundle: commerce
- Composer package:
capell-app/bookings - Namespace:
Capell\Bookings - Theme key: not applicable
Why It Matters
Section titled “Why It Matters”For developers: Actions own slot calculation and booking state changes, while signed customer URLs, scheduled commands, and package resources expose those workflows through defined boundaries.
For teams: Teams can start with services, staff, availability, and the request queue, then add reminders, reviews, waitlists, and customer links when the operation needs them.
Evidence: src/Actions/BuildAvailableBookingSlotsAction.php, src/Actions/ConfirmAppointmentRequestAction.php, src/Actions/CreatePortalAccessTokenAction.php, src/Console/SendDueAppointmentRemindersCommand.php, docs/overview.admin.md, docs/admin-guide.md, docs/screenshots.json.
Start Simple, Add Depth Later
Section titled “Start Simple, Add Depth Later”Most teams should launch with the default request form, service setup, staff availability, and admin queue before enabling reminders, reviews, waitlists, travel planning, payments, or advanced automation. Use docs/adoption-guide.md as the rollout path for owners, operators, agencies, and developers.
Screens And Workflow
Section titled “Screens And Workflow”Screenshot contract: docs/screenshots.json.


- Public booking request form (frontend, required).
- Appointment request admin queue (admin, required).
- Equi Dynamics public booking form on desktop (frontend, required).
- Equi Dynamics public booking form on mobile (frontend, required).
- Equi Dynamics successful booking submission (frontend, required).
- Public booking validation error state (frontend, optional).
- Appointment request workflow detail (admin, optional).
- Booking availability exception calendar (admin, optional).
- Booking review request flow (frontend, optional).
Technical Shape
Section titled “Technical Shape”- Service providers:
Capell\Bookings\Providers\BookingsServiceProvider. - Config files:
packages/bookings/config/capell-bookings.php. - Migrations:
packages/bookings/database/migrations/2026_05_31_130000_01_create_booking_services_table.php,packages/bookings/database/migrations/2026_05_31_130000_02_create_booking_staff_members_table.php,packages/bookings/database/migrations/2026_05_31_130000_03_create_booking_locations_table.php,packages/bookings/database/migrations/2026_05_31_130000_04_create_booking_availability_windows_table.php,packages/bookings/database/migrations/2026_05_31_130000_05_create_appointment_requests_table.php,packages/bookings/database/migrations/2026_05_31_130000_06_create_booking_availability_exceptions_table.php,packages/bookings/database/migrations/2026_05_31_130000_07_create_appointment_audit_logs_table.php,packages/bookings/database/migrations/2026_06_13_000001_create_lesson_series_table.php,packages/bookings/database/migrations/2026_06_13_000002_add_adaptive_foundations_to_appointment_requests_table.php,packages/bookings/database/migrations/2026_06_13_000003_add_travel_and_payment_fields_to_bookings_tables.php,packages/bookings/database/migrations/2026_06_13_000004_create_booking_lesson_notes_table.php,packages/bookings/database/migrations/2026_06_13_000005_create_booking_messaging_tables.php,packages/bookings/database/migrations/2026_06_13_000006_create_booking_travel_tables.php,packages/bookings/database/migrations/2026_06_13_000007_create_booking_change_proposals_table.php,packages/bookings/database/migrations/2026_06_13_000008_create_booking_group_sessions_table.php,packages/bookings/database/migrations/2026_06_13_000009_add_group_session_fields_to_appointment_requests_table.php,packages/bookings/database/migrations/2026_06_13_000010_create_booking_review_requests_table.php,packages/bookings/database/migrations/2026_06_13_000011_create_booking_owner_prompts_table.php,packages/bookings/database/migrations/2026_06_13_000012_create_booking_webhook_events_table.php,packages/bookings/database/migrations/2026_06_13_000013_create_booking_waitlist_entries_table.php,packages/bookings/database/migrations/2026_06_13_000014_create_booking_lesson_skill_assessments_table.php,packages/bookings/database/migrations/2026_06_13_000015_create_booking_lesson_bundles_table.php,packages/bookings/database/migrations/2026_06_13_000016_create_booking_review_participants_table.php,packages/bookings/database/migrations/2026_06_13_000017_add_token_fields_to_booking_review_requests_table.php,packages/bookings/database/migrations/2026_07_08_000001_add_site_scope_to_booking_availability_tables.php,packages/bookings/database/migrations/2026_07_10_000001_create_booking_lesson_bundle_usages_table.php. - Settings migrations:
packages/bookings/database/settings/2026_06_13_000001_create_bookings_settings.php. - Settings classes:
BookingsSettings. - Models:
AppointmentAuditLog,AppointmentRequest,BookingAvailabilityException,BookingAvailabilityWindow,BookingChangeProposal,BookingChangeProposalParty,BookingGroupSession,BookingLessonBundle,BookingLessonBundleUsage,BookingLessonSkillAssessment,BookingLocation,BookingMessageLog,BookingOwnerPrompt,BookingReviewParticipant,BookingReviewRequest,BookingService,BookingStaffMember,BookingTravelAdjustment,BookingTravelObservation,BookingWaitlistEntry,BookingWebhookEvent,BookingWorkZone,LessonNote,LessonSeries,MessagingConsent. - Filament classes:
AppointmentRequestResource,EditAppointmentRequest,ListAppointmentRequests,AppointmentAuditLogsRelationManager,LessonNotesRelationManager,BookingAvailabilityExceptionResource,CreateBookingAvailabilityException,EditBookingAvailabilityException,ListBookingAvailabilityExceptions,BookingAvailabilityWindowResource,CreateBookingAvailabilityWindow,EditBookingAvailabilityWindow,and 45 more. - Route files:
packages/bookings/routes/web.php. - Policies:
AbstractBookingsResourcePolicy,AppointmentAuditLogPolicy,AppointmentRequestPolicy,BookingAvailabilityExceptionPolicy,BookingAvailabilityWindowPolicy,BookingChangeProposalPartyPolicy,BookingChangeProposalPolicy,BookingGroupSessionPolicy,BookingLessonBundlePolicy,BookingLessonSkillAssessmentPolicy,BookingLocationPolicy,BookingMessageLogPolicy,BookingOwnerPromptPolicy,BookingReviewParticipantPolicy,BookingReviewRequestPolicy,BookingServicePolicy,BookingStaffMemberPolicy,BookingTravelAdjustmentPolicy,BookingTravelObservationPolicy,BookingWaitlistEntryPolicy,BookingWebhookEventPolicy,BookingWorkZonePolicy,LessonNotePolicy,LessonSeriesPolicy,MessagingConsentPolicy. - Extension contracts:
BookingMessageChannel,BookingsAiAdvisor,PublicBookingRequestRenderer,SocialEventProvider,TravelTimeProvider. - Actions:
AcknowledgeFuelAllowanceAction,AddReviewParticipantAction,ApplyBookingChangeAction,ApplyLessonBundleCreditAction,AssignGroupSlotTimesAction,AttachLessonPhotoAction,BuildAvailableBookingSlotsAction,BuildBookingPrivacyExportAction,BuildDayPlanAction,BuildInstructorFuelReportAction,BuildOwnerDigestAction,BuildPortalLessonRowsAction,and 80 more. - Data objects:
AppointmentRequestData,AvailabilityExceptionData,AvailabilityWindowData,BookingMessageData,BookingMessageResultData,BookingPrivacyRecordIdsData,DayPlanData,DayPlanStopData,PortalLessonRowData,TravelEstimateData. - Command signatures:
capell:bookings-demo,capell:bookings:expire-workflow-state,capell:bookings:prune-retention-data,capell:bookings:schedule-review-requests,capell:bookings:send-due-reminders. - Manifest action API:
addReviewParticipant: Capell\Bookings\Actions\AddReviewParticipantAction,applyLessonBundleCredit: Capell\Bookings\Actions\ApplyLessonBundleCreditAction,assignGroupSlotTimes: Capell\Bookings\Actions\AssignGroupSlotTimesAction,attachLessonPhoto: Capell\Bookings\Actions\AttachLessonPhotoAction,buildAvailableBookingSlots: Capell\Bookings\Actions\BuildAvailableBookingSlotsAction,buildDayPlan: Capell\Bookings\Actions\BuildDayPlanAction,buildInstructorFuelReport: Capell\Bookings\Actions\BuildInstructorFuelReportAction,buildOwnerDigest: Capell\Bookings\Actions\BuildOwnerDigestAction,buildPortalLessonRows: Capell\Bookings\Actions\BuildPortalLessonRowsAction,buildPublicBookingRequestOptions: Capell\Bookings\Actions\BuildPublicBookingRequestOptionsAction,buildPublicBookingRequestProps: Capell\Bookings\Actions\BuildPublicBookingRequestPropsAction,buildServiceAreaHeatmap: Capell\Bookings\Actions\BuildServiceAreaHeatmapAction,and 59 more. - Scheduled commands:
capell:bookings:expire-workflow-state (everyFiveMinutes),capell:bookings:prune-retention-data (daily),capell:bookings:schedule-review-requests (hourly),capell:bookings:send-due-reminders (everyFiveMinutes). - Console command classes:
ExpireBookingWorkflowStateCommand,InstallBookingsDemoCommand,PruneBookingRetentionDataCommand,ScheduleBookingReviewRequestsCommand,SendDueAppointmentRemindersCommand. - Manifest contributions:
admin-resource: Capell\Bookings\Manifest\AppointmentRequestResourceContribution,admin-resource: Capell\Bookings\Manifest\BookingAvailabilityExceptionResourceContribution,admin-resource: Capell\Bookings\Manifest\BookingAvailabilityWindowResourceContribution,admin-resource: Capell\Bookings\Manifest\BookingChangeProposalResourceContribution,admin-resource: Capell\Bookings\Manifest\BookingDayPlannerResourceContribution,admin-resource: Capell\Bookings\Manifest\BookingGroupSessionResourceContribution,admin-resource: Capell\Bookings\Manifest\BookingLocationResourceContribution,admin-resource: Capell\Bookings\Manifest\BookingMessageLogResourceContribution,admin-resource: Capell\Bookings\Manifest\BookingOwnerPromptResourceContribution,admin-resource: Capell\Bookings\Manifest\BookingReviewRequestResourceContribution,admin-resource: Capell\Bookings\Manifest\BookingServiceResourceContribution,admin-resource: Capell\Bookings\Manifest\BookingStaffMemberResourceContribution,admin-resource: Capell\Bookings\Manifest\BookingTravelObservationResourceContribution,admin-resource: Capell\Bookings\Manifest\BookingWaitlistEntryResourceContribution,admin-resource: Capell\Bookings\Manifest\BookingWorkZoneResourceContribution,admin-resource: Capell\Bookings\Manifest\LessonSeriesResourceContribution,console-command: Capell\Bookings\Manifest\BookingsConsoleCommandsContribution,model: Capell\Bookings\Manifest\BookingsModelsContribution,route: Capell\Bookings\Manifest\BookingsFrontendRoutesContribution,scheduled-job: Capell\Bookings\Manifest\BookingsReminderScheduleContribution. - Health checks:
Capell\Bookings\Health\BookingsHealthCheck. - Blade views:
packages/bookings/resources/views/portal/consent.blade.php,packages/bookings/resources/views/portal/lessons.blade.php,packages/bookings/resources/views/portal/proposal.blade.php,packages/bookings/resources/views/portal/review-participant.blade.php,packages/bookings/resources/views/portal/review.blade.php,packages/bookings/resources/views/request.blade.php. - Cache tags:
bookings.
Data Model
Section titled “Data Model”- Required tables:
booking_services,booking_staff_members,booking_locations,booking_availability_windows,booking_availability_exceptions,lesson_series,appointment_requests,appointment_audit_logs,booking_lesson_notes,booking_messaging_consents,booking_message_logs,booking_travel_observations,and 13 more. - Models:
AppointmentAuditLog,AppointmentRequest,BookingAvailabilityException,BookingAvailabilityWindow,BookingChangeProposal,BookingChangeProposalParty,BookingGroupSession,BookingLessonBundle,BookingLessonBundleUsage,BookingLessonSkillAssessment,BookingLocation,BookingMessageLog,and 13 more. - Core record references in migrations:
sites via site_id. - Migration files:
2026_05_31_130000_01_create_booking_services_table.php,2026_05_31_130000_02_create_booking_staff_members_table.php,2026_05_31_130000_03_create_booking_locations_table.php,2026_05_31_130000_04_create_booking_availability_windows_table.php,2026_05_31_130000_05_create_appointment_requests_table.php,2026_05_31_130000_06_create_booking_availability_exceptions_table.php,2026_05_31_130000_07_create_appointment_audit_logs_table.php,2026_06_13_000001_create_lesson_series_table.php,2026_06_13_000002_add_adaptive_foundations_to_appointment_requests_table.php,2026_06_13_000003_add_travel_and_payment_fields_to_bookings_tables.php,2026_06_13_000004_create_booking_lesson_notes_table.php,2026_06_13_000005_create_booking_messaging_tables.php,and 14 more. - Migration impact: run host migrations through the package install flow before opening package surfaces.
- Deletion/retention behaviour: migrations declare cascade-on-delete relationships and null-on-delete relationships; retention is scheduled through
capell:bookings:prune-retention-data(daily).
Install Impact
Section titled “Install Impact”- Required packages:
capell-app/admin,capell-app/core,capell-app/customer-portal. - Admin navigation: declares
admin-resource: AppointmentRequestResourceContribution,admin-resource: BookingAvailabilityExceptionResourceContribution,admin-resource: BookingAvailabilityWindowResourceContribution,admin-resource: BookingChangeProposalResourceContribution,admin-resource: BookingDayPlannerResourceContribution,admin-resource: BookingGroupSessionResourceContribution,admin-resource: BookingLocationResourceContribution,admin-resource: BookingMessageLogResourceContribution, and 8 more; each Filament page or resource controls its own navigation visibility. - Admin/editor extensions: none declared.
- Permissions:
View:BookingService,Create:BookingService,Update:BookingService,Delete:BookingService,View:BookingStaffMember,Create:BookingStaffMember,Update:BookingStaffMember,Delete:BookingStaffMember,View:BookingLocation,Create:BookingLocation,Update:BookingLocation,Delete:BookingLocation,View:BookingAvailabilityWindow,Create:BookingAvailabilityWindow,Update:BookingAvailabilityWindow,Delete:BookingAvailabilityWindow, and 30 more. - Public routes: loads
routes/web.php; registersBookingsFrontendRoutesContribution. - Database changes: package migrations are declared.
- Config:
config/capell-bookings.php. - Settings:
Capell\Bookings\Settings\BookingsSettings. - Queues or schedules: scheduled commands
capell:bookings:expire-workflow-state (everyFiveMinutes),capell:bookings:prune-retention-data (daily),capell:bookings:schedule-review-requests (hourly),capell:bookings:send-due-reminders (everyFiveMinutes). - Cache tags:
bookings. - Commands:
capell:bookings-demo,capell:bookings:expire-workflow-state,capell:bookings:prune-retention-data,capell:bookings:schedule-review-requests,capell:bookings:send-due-reminders.
Common Pitfalls
Section titled “Common Pitfalls”- Keep required Capell packages on compatible v4 releases:
capell-app/admin,capell-app/core,capell-app/customer-portal. - Run migrations before opening package resources or public routes.
- Review package configuration before production-like verification:
config/capell-bookings.php,Capell\Bookings\Settings\BookingsSettings. - Review middleware, throttling, signatures, and public-output safety in
routes/web.phpbefore exposing routes. - Register the host scheduler so these declared commands run at their documented frequencies:
capell:bookings:expire-workflow-state (everyFiveMinutes),capell:bookings:prune-retention-data (daily),capell:bookings:schedule-review-requests (hourly),capell:bookings:send-due-reminders (everyFiveMinutes). - Keep public Blade and cached HTML free of authoring markers, model IDs, permissions, signed editor URLs, and lazy database queries.
- Custom write integrations must preserve invalidation for
bookingscache tags.
Troubleshooting
Section titled “Troubleshooting”| Symptom | Likely cause | Check | Fix |
|---|---|---|---|
| Package surface is missing after install | Provider or manifest is not loaded | Confirm capell.json, package composer.json, and provider registration | Reinstall the package, refresh Composer autoload, and clear host caches |
| Admin screen or command fails on missing table | Package migrations have not run | Check the tables listed in Data Model | Run host migrations and rerun the focused package test |
| Route returns unexpected output | Route cache, middleware, or signed URL setup does not match the package route file | Check the route files listed in Technical Shape | Clear route cache and verify middleware before exposing public routes |
| Background work does not run | Queue worker or declared schedule is not active | Check the jobs and scheduled commands listed in Technical Shape | Start the queue worker or host scheduler, then run the focused command or package test |
| Public output leaks unexpected state | Render data, cache variation, or authoring boundary has regressed | Check public Blade, cache tags, and public-output safety tests | Move data loading out of Blade and rerun the package public-output tests |
Quick Start
Section titled “Quick Start”- Install the package:
composer require capell-app/bookings. - Run the required setup:
php artisan migrate. - Open the Appointment request admin queue and confirm the admin workflow loads.
Next Steps
Section titled “Next Steps”- Package docs
- Overview
- Admin guide
- Adoption guide
- Configuration files:
config/capell-bookings.php. - Troubleshooting
- Screenshot contract
- Marketplace assets
- Capell content language plan
- Capell documentation design system
- Capell and package ERD notes
- Related packages: Customer Portal, Address, Ai Orchestrator, Events, Form Builder, Media Library, Payments, Seo Suite.
- Focused tests:
vendor/bin/pest packages/bookings/tests --configuration=phpunit.xml.