Drupal is a registered trademark of Dries Buytaert
drupal 11.3.7 Update released for Drupal core (11.3.7)! drupal 11.2.11 Update released for Drupal core (11.2.11)! drupal 10.6.7 Update released for Drupal core (10.6.7)! drupal 10.5.9 Update released for Drupal core (10.5.9)! cms 2.1.1 Update released for Drupal core (2.1.1)! drupal 11.3.6 Update released for Drupal core (11.3.6)! drupal 10.6.6 Update released for Drupal core (10.6.6)! cms 2.1.0 Update released for Drupal core (2.1.0)! bootstrap 8.x-3.40 Minor update available for theme bootstrap (8.x-3.40). menu_link_attributes 8.x-1.7 Minor update available for module menu_link_attributes (8.x-1.7). eca 3.1.1 Minor update available for module eca (3.1.1). layout_paragraphs 2.1.3 Minor update available for module layout_paragraphs (2.1.3). ai 1.3.3 Minor update available for module ai (1.3.3). ai 1.2.14 Minor update available for module ai (1.2.14). node_revision_delete 2.0.3 Minor update available for module node_revision_delete (2.0.3). moderated_content_bulk_publish 2.0.52 Minor update available for module moderated_content_bulk_publish (2.0.52). klaro 3.0.10 Minor update available for module klaro (3.0.10). klaro 3.0.9 Minor update available for module klaro (3.0.9). layout_paragraphs 2.1.2 Minor update available for module layout_paragraphs (2.1.2). geofield_map 11.1.8 Minor update available for module geofield_map (11.1.8).

booking_scheduler

3 sites No security coverage
View on drupal.org

Booking Scheduler Module

Project Page Introduction

Transform Your Drupal Site into a Versatile Booking Platform with the Booking Scheduler Module!

Do you need a robust, yet easy-to-use, system to manage bookings for various items or services directly from your Drupal website? The Booking Scheduler module offers a flexible solution, allowing you to track scheduled slots, prevent overlaps, and provide a clear availability calendar to your users.

Whether you're managing rooms, equipment, consultation slots, or any other bookable resource, this module provides a solid foundation. It integrates seamlessly with your existing Drupal setup, leveraging standard content types and fields for maximum versatility.

Features

  • Dedicated "Bookable Item" Content Type Integration: Easily define and manage any bookable resource (e.g., rooms, equipment, services) as standard Drupal content.
  • Single-Date Booking: Users can select and book an item for a specific date.
  • Automatic Booking Tracking: The module automatically updates an item's "booked dates" field when a new booking is confirmed.
  • Overlap Prevention: Ensures an item cannot be booked twice for the same date.
  • Visual Availability Calendar: A clean, interactive calendar (powered by FullCalendar.io) visually displays all booked dates.
  • Custom Colors per Item: Assign a unique color to each bookable item, making it easy to distinguish bookings on the calendar at a glance.
  • Category Management & Filtering: Organize your bookable items by category (e.g., "Meeting Rooms", "Tools", "Consultants") and filter the calendar view by these categories.
  • Inferred Availability: Simplifies management by considering any date not explicitly booked as available.
  • Customizable Calendar Display: Easily change the text and layout of the calendar's header toolbar.
  • Drupal 10 & 11 Compatible: Built with modern Drupal standards for long-term usability.
  • PHP 8.1 & 8.3 Ready: Fully compatible with current and upcoming PHP versions.

Installation

  1. Download and Place:
    • Download the module archive.
    • Place the booking_scheduler directory into your Drupal installation's modules/contrib folder.
    • Alternatively, use Composer: composer require drupal/booking_scheduler (Note: This is a hypothetical command for a contrib module. For this custom module, you'd place it manually).
  2. Install FullCalendar Library:
  3. You can install this module as a normal installation process of Composer.

    Optionally, if you'd like to automatically install the external libraries into your local Drupal instance, then you may add drupal/fullcalendar_block as a drupal-libraries-dependencies of the zodiacmedia/drupal-libraries-installer plugin.
    1. Ensure that packages of type drupal-library are properly configured to install to the /libraries directory.
    2. Add the composer dependency: composer require zodiacmedia/drupal-libraries-installer.
    3. Add the library to the zodiacmedia/drupal-libraries-installer Drupal libraries dependencies list:
    4.               {
                       "extra": {
                          "drupal-libraries-dependencies": 
                              [ "drupal/booking_scheduler ] 
                         }
                    }
                  

      Then run composer install as normal.

Configuration

  1. Add Bookable Item Content:
    • Go to Content > Add content > Bookable Item (/node/add/bookable_item).
    • Create your bookable item entries.
    • Crucially, set the Booking Color (e.g., #FF5733 for one item, #33C7FF for another) and select a Category for each item. You do not need to manually add booked dates; the booking process will populate this.
  2. View the Calendar:
    • The main availability calendar is accessible at /booking-calendar.
    • You should now see the "Filter by Category" dropdown.
    • Booked dates will appear in their assigned colors.
    • You can optionally place a block to link to this page: Go to Structure > Block layout > Place block, search for "Booking Scheduler Calendar", and place it in your desired region.
  3. Book an Item:
    • Navigate to any "Bookable Item" node page (/node/X where X is the item ID).
    • You should see a "Book Item" button. Click it.
    • Select a date and click "Book Now." The date will be added to the item's booked dates and will appear on the calendar in that item's assigned color.

Activity

Total releases
3
First release
Jul 2025
Latest release
9 months ago
Release cadence
1 day
Stability
67% stable

Release Timeline

Releases

Version Type Release date
1.0.1 Stable Jul 17, 2025
1.0.x-dev Dev Jul 16, 2025
1.0.0 Stable Jul 16, 2025