Drupal is a registered trademark of Dries Buytaert

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
7 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