commerce_appointment_scheduler
Commerce Appointment Scheduler adds appointment booking directly to Drupal Commerce product variations. It is designed for stores that sell scheduled services such as consultations, classes, discovery calls, virtual sessions, in-person appointments, rentals, service visits, or bookable time slots.
The module extends the Commerce add-to-cart workflow with an appointment selector so customers can choose an available date, select a specific appointment start time, enter booking details, and add the scheduled service to their cart. The selected appointment is stored on the Commerce order item, keeping the booking tied directly to the purchased product variation and order.
Features
Commerce Appointment Scheduler provides:
Appointment booking for Commerce product variations.
Interactive calendar on the Commerce add-to-cart form.
Clickable available dates and appointment start times.
Default one-hour appointment workflow.
Per-variation appointment enable/disable setting.
Per-variation duration, capacity, lead time, booking window, buffer, timezone, location, and weekly schedule.
Global default booking policy configuration.
Seven-day weekly schedule support.
Holiday and blackout-date exclusions.
Recurring annual blackout dates such as 12-25.
Specific blackout dates such as 2026-07-04.
Slot-capacity enforcement.
Server-side validation before add-to-cart submission.
Capacity checks against existing non-draft, non-canceled Commerce orders.
Order item fields for appointment start, end, timezone, location, and customer notes.
Cart comparison support so different appointments do not merge into the same cart line.
Optional appointment image field for product variations.
Optional store SMS notifications through Twilio.
Admin report for upcoming booked appointments.
Non-JavaScript fallback using the underlying Commerce form select element.
Use Cases
This module is useful for Commerce sites that sell:
Consultations
Classes
Service appointments
Discovery calls
Coaching sessions
Medical or wellness appointments
In-person service visits
Virtual meetings
Rental pickup or service windows
Scheduled business services
How It Works
Site administrators enable appointment scheduling on individual Commerce product variations. Each variation can use the sitewide default schedule or define its own appointment rules, including timezone, location, booking duration, slot capacity, lead time, booking window, buffer time, weekly availability, and blackout dates.
On the storefront, appointment-enabled products display a booking interface inside the Commerce add-to-cart form. Customers select an available day, choose an appointment time, optionally enter appointment details, and add the booking to cart.
When the item is added to cart, the module validates the selected slot on the server, checks existing bookings, applies capacity rules, and stores the appointment information on the Commerce order item.
Requirements
Drupal 11
Drupal Commerce
Commerce Cart
Commerce Order
Commerce Product
Drupal core Datetime
Drupal core Field
Drupal core Image
Optional: Twilio account for SMS notifications
Configuration
Global settings are available at:
/admin/config/services/commerce-appointment-scheduler
Administrators can configure:
Default business timezone
Default weekly schedule JSON
Default blackout dates
Default appointment duration
Default slot capacity
Default lead time
Default booking window
Default buffer between slots
Optional Twilio SMS notification settings
Upcoming appointments can be reviewed at:
/admin/reports/commerce-appointments