Drupal is a registered trademark of Dries Buytaert
Release: Leaflet 10.4.11 Minor update available for module leaflet (10.4.11). Release: Session Inspector 1.0.8 Minor update available for module session_inspector (1.0.8). Release: Migrate QA 2.0.4 Minor update available for module migrate_qa (2.0.4). Release: CKEditor Description List 3.0.0 Major update available for module ckeditor_descriptionlist (3.0.0). Release: FlowDrop 2.4.0 Minor update available for module flowdrop (2.4.0). Release: JWT Token Refresh 1.0.4 Minor update available for module jwt_token_refresh (1.0.4). Release: ConReg 1.0.0-beta1 First beta version released for module conreg (1.0.0-beta1). Release: AI Image Studio 1.0.0-beta8 New beta version released for module ai_image_studio (1.0.0-beta8). Usage Milestone: Role Theme Switcher Module role_theme_switcher crossed 1,000 active installs. Module Revived: Decoupled Router 2.0.7 Module decoupled_router updated after 11 months of inactivity (2.0.7).

This module allows Drupal Commerce stores to sell bookable services and time slots directly within their products. Customers can select available dates and appointment times during the checkout process, with options for custom durations, capacity limits, and blackout dates.

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

Activity

Tracked releases
2
Tracked since
Jun 2026
Latest release
1 month ago
Releases (12 mo)
2 ▲ from 0
Maintenance
Active

Releases

Version Type Release date
1.0.0 Stable Jun 26, 2026
1.x-dev Dev Jun 26, 2026