Booking module
| Booking module | |
|---|---|
| Type | Other, Activity module, Booking |
| Set | N/A |
| Downloads | https://moodle.org/plugins/mod_booking |
| Issues | https://github.com/Wunderbyte-GmbH/moodle-mod_booking/issues |
| Discussion | https://github.com/Wunderbyte-GmbH/moodle-mod_booking/issues |
| Maintainer(s) | David Bogner |
About
The Booking Module for Moodle is a powerful and flexible tool designed to streamline event, course, and appointment bookings. Whether you're managing online training, in-person workshops, or resource reservations, this module helps keep everything organized within your Moodle environment.
Handling event sign-ups, course registrations, and resource allocations can be complex, but the Booking Module makes it easy with its intuitive, automated system. Users can quickly register for events, while administrators maintain full control over availability, notifications, and reporting.
With extensive features and customization options, the module is ideal for educational institutions, corporate training programs, and public events. It’s particularly well-suited for managing recurring course or event bookings in Moodle. Additionally, it integrates seamlessly with Wunderbyte’s Shopping Cart Plugin for paid bookings and supports Moodle’s native Payment System. Events, also known as "booking options," can be created individually or linked to existing Moodle courses.
Key Features
- Flexible Booking Management
- Easily create and manage bookings for courses, training sessions, events, or any other resource.
- Set limits on the number of participants and define waiting, or notification lists for overbooked sessions.
- Customizable Booking Options
- Offer different booking options, such as single or recurring sessions.
- Define multiple timeslots, locations, and instructors for each booking instance.
- Set booking periods with opening and closing dates.
- User-Friendly Booking Interface
- Students and teachers can book with just a few clicks using an intuitive and mobile-friendly interface.
- Users can review their booked events, cancel registrations, and receive email confirmations.
- Automated Notifications and Reminders
- Send automated email reminders and confirmations to participants.
- Notify administrators and facilitators when new bookings are made.
- Integration with Moodle Activities and Completion Tracking
- Link bookings with Moodle courses, activities, and completion tracking.
- Restrict access to certain bookings based on course enrollment or prerequisites like manual confirmation.
- Roles and Permissions Management
- Control who can create, manage, and view bookings with Moodle's role-based access control system.
- Assign different permissions to teachers, managers, and students.
- Payment Integration
- Connect with payment gateways to charge users for bookings (optional).
- Track payment statuses within the booking module.
How to use the booking module
Prerequisites
To ensure the Booking Plugin functions correctly, the following plugins must be installed in this order:
- Mandatory Plugins:
local_wunderbyte_table– Required for displaying booking entries.mod_booking– The core booking module.
- Optional Third-Party Plugins:
customfield_dynamic– Enables multiple selections for custom booking options.local_entities– Used to create locations such as institutes, lecture halls, and seminar rooms.local_shopping_cart– Connects payment providers like Payunity, mpay24, Stripe, and PayPal for paid bookings.
General Configuration
- Adding a Booking Activity
- Navigate to Add an activity > Booking.
- Assign a general name (not the event name). The booking text will be shown at the top of the page.
- Set a default booking limit (this can also be defined per event).
- Define a time period for booking availability.
- Enable email settings for automated notifications.
- The policy page is highly recommended for outlining terms and conditions.
- Click Save and display.
- Configuring a Booking Instance
- Create a course in Moodle where the booking instance will be added.
- Adjust global settings via Site Administration > Plugins > Booking to configure instance templates, pricing, semesters, and rules.
- Enable Booking Rules (PRO) for automated actions like reminders or cancellation notices.
- Customize booking views, permissions, and restrictions for different roles (e.g., managers, teachers, students).
Managing Events and Booking Options
- Click on Manage X responses at the top-right corner of the booking instance.
- Under the Manage column, find the latest Edit this booking option link.
- Enter the event name in the ‘Booking’ field.
- Set booking limits and time restrictions (optional).
- The description is crucial, as it will appear in the booking table.
- Click Save and add new to create additional booking options.
Editing and Managing Bookings
- Delete individual user bookings if needed.
- Remove an entire event along with its bookings.
- Download a list of booked users as an .xls file for each event or export all bookings in one file.
Permissions
- Navigate to Settings > Permissions.
- Under Advanced role override, select a role (e.g., Manager, Teacher).
- In the Activity: Booking table, tick Allow for relevant permissions.
- Click Save changes.
Handling Bugs
- Most known bugs have been fixed except for an issue in IE8, where deleting users via the ‘Edit this booking option’ page does not work. Users should be advised to avoid using IE.
Adding a New Booking Option
- Go to Manage XX bookings.
- Click Edit booking option, make no changes, and click Save and add new.
Special User Profile Fields
- If additional user information is required (e.g., phone numbers), custom user profile fields can be defined in Site Administration > User Profile Fields.
- Mark them as required so users must complete them before booking a course.
For a hands-on experience with the Booking Module, visit our showroom via showroom.wunderbyte.at, where you can explore a fully functional demo course. It includes detailed documentation and an overview of the benefits of using the PRO version, helping you understand its advanced features in a real Moodle environment.
CSV import
Create booking options and add users.
Fields in CSV file are (must be in this order):
- name - name of booking option
- startdate - start date, 0 for no date
- enddate - end date, 0 for no date
- institution - institution
- institutionaddress - institution address
- teacheremail - teacher email - to match in users table
- useremail - user email to match with user in Moodle
- finished - if user has completed activity
- maxanswers - max. number of participants (default 0)
- maxoverbooking - max. number of places on waiting list (default 0)
- limitanswers - limit the number of participants Help with Limit the number of participants (1 for limiting or 0 to disable)
- location - location ex. room number
- courseid (optional) - The course id
Example csv file as PDF
You can try to extract line by line and put the content in a plain text editor, then save the text file as csv in order to have a properly formatted csv for the import.
Extra Fields
Some of you may need to enrol to the current course and/or to a group automatically named after the booking option name. To do so, first ensure that the flag in the booking options is enabled, then you must add an extra field to the .csv file, immediately after location. This extra field is courseid and it must contain the exact course id. If the courseid is missing or incorrect, users will be added to the booking instance but not enrolled in the course, unless they are already enrolled.
Note: This behavior has been tested on Moodle Core 4.2. It may have changed in future versions and should be re-verified accordingly.File:testimport-csv.pdf
CSV import - activity completion
Fields in CSV:
- OptionID - Option ID
- UserID - User ID
- CourseCompleted - 1 - competed, 0 - not completed
- Field delimiter: , (coma)
- Enclosure field: " (quotation mark)
- Escape character: \ (backslash)
- Date parse format - format of startdate and enddate fields.
Credits
- Wunderbyte GmbH (Product owner)
- Edulabs.org (former maintainer)
- David Bogner (Lead maintainer)
- Andraž Prinčič
See also
- Documentation: https://showroom.wunderbyte.at/mod/book/view.php?id=934
- Showroom of Wunderbyte - Booking demo course: https://showroom.wunderbyte.at/course/view.php?id=58
- The Booking Academy: https://showroom.wunderbyte.at/course/index.php?categoryid=5