booking_scheduler
3 sites
No security coverage
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
-
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).
- Install FullCalendar Library:
-
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.- Ensure that packages of type drupal-library are properly configured to install to the /libraries directory.
- Add the composer dependency: composer require zodiacmedia/drupal-libraries-installer.
- Add the library to the zodiacmedia/drupal-libraries-installer Drupal libraries dependencies list:
-
{ "extra": { "drupal-libraries-dependencies": [ "drupal/booking_scheduler ] } }Then run composer install as normal.
Configuration
-
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.
-
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.
-
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.