Your Moodle version

Activities: Booking

Maintained by it's me David Bogner, Picture of Andraž P. Andraž P.
The module is perfect for managing participants and subscription of online and offline courses and events.
Moodle 2.0, 2.1, 2.2, 2.3, 2.4, 2.5

This is a powerful booking tool, that provides a lot of features. It is perfect managing course bookings, or bookings of events, that are not associated with a moodle course. Some of the features are:

  • Max participants
  • Waitinglist
  • Automatic course subscription
  • Confirmation mail
  • Download userlist as xls or ods
  • Cancellation system
  • Subscription period
  • Accept terms and conditions
  • Custom messages
  • Bulk subscription management
  • and a lot more.

Attention: The Moodle 2.9 and 3.0 version were successfully funded. There is still some need for funding to keep the plugin up to date. Following tasks need funding:

  • Implement automated testing
  • Replace YUI Javascript with JQUERY (YUI is not developped anymore)
  • Documentation
  • Language optimization
  • MSSQL Support
  • Additional features


Screenshot #0
Screenshot #1
Screenshot #2
Screenshot #3


it's me
David Bogner (Lead maintainer)
Picture of Andraž P.
Andraž P.: Developer
Please login to view contributors details and/or to contact them

Comments RSS

Show comments
  • Greg Milsted
    Thu, Sep 10, 2015, 9:07 PM
    If it helps anyone, to make the booking module available to students (currently broken for us if you use the 'Restrict answering to this time period' settings):


    321: add: $timenow > in this line: } else if ($timenow > $booking->booking->timeclose && !has_capability('mod/booking:updatebooking', $context)) {
  • Picture of Rob Johnson
    Tue, Sep 15, 2015, 9:00 AM
    Hi David,
    I have been testing Bookings with Moodle 2.8 (version 2015012100). It has been working just fine until this past weekend. When the Booking cron is called, I am seeing this error.

    Processing module function booking_cron ...
    Starting cron for Booking ...

    Notice: Trying to get property of non-object in /srv/www/htdocs/mod/booking/locallib.php on line 159

    Fatal error: __clone method called on non-object in /srv/www/htdocs/mod/booking/locallib.php on line 1386

    I know it is not an official release for Moodle 2.8, but I would still be greatful if you had advice on how to work around the error.
  • Picture of Rob Johnson
    Wed, Sep 16, 2015, 11:58 AM
    I am sorry for replying to myself, but upgrading to the current release has fixed my cron error. Booking seems to work just fine with Moodle 2.8.
  • it's me
    Wed, Sep 16, 2015, 12:08 PM
    Hi Rob,

    that is great to hear.

    Kind regards,
  • Picture of Colin Wheelhouse
    Wed, Sep 16, 2015, 10:21 PM
    Hi Rob,
    What 2.8 version are you using as it won't install the block on my 2.8.7 version and we need it back asap!

  • Picture of Tobias Marx
    Tue, Oct 20, 2015, 9:44 PM
    Is there a way to hire you, etc. to provide funding for future releases?
  • Picture of Rob Johnson
    Thu, Oct 22, 2015, 12:36 AM
    Hi Colin,
    I am sorry to be so late with my reply. I am using 2.8.7+ (20150730). I upgraded Booking from an earlier version on Moodle 2.6. I had to manually add a few database tables through phpmyadmin. Once I did, it worked fine.
  • it's me
    Mon, Nov 30, 2015, 1:58 AM
    @Tobias Mark. That is always a possibility. You can write me a message via moodle in order to talk about details.
  • Picture of Andraž P.
    Fri, Dec 11, 2015, 4:57 PM
    @Abdul-Khaliq Nathekar I updated the documentation with seciton CSV import. Please, take a look and if you have any questions, just ask:
  • Picture of Jeff White
    Thu, Feb 4, 2016, 4:51 AM
    Are you looking for sponsors for this plugin?
  • Picture of Miroslav Sklenář
    Mon, Apr 25, 2016, 10:02 PM
    We are trying new modul "Diane Selwyn 1.0", but we have a problem on MSSQL:

    Debug info: SQLState: 42000
    Error Code: 8127
    Message: [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Column "mdl_booking_options.coursestarttime" is invalid in the ORDER BY clause because it is not contained in either an aggregate function or the GROUP BY clause.

    SELECT COUNT(DISTINCT AS count FROM mdl_booking_options AS bo LEFT JOIN mdl_booking_teachers AS bt ON bt.optionid = LEFT JOIN mdl_user AS ut ON bt.userid = LEFT JOIN mdl_booking_answers AS ba ON = ba.optionid LEFT JOIN mdl_user AS u ON ba.userid = WHERE bo.bookingid = '1' AND (bo.courseendtime > 1461592750 OR bo.courseendtime = 0) ORDER BY bo.coursestarttime DESC
    [array (
    0 => '1',
    Error code: dmlreadexception
  • it's me
    Tue, Apr 26, 2016, 3:16 PM
    Hi Miroslav,

    thank you for reporting this issue. Currently I do not have a MS SQL testing system. Also there is no funding for MS SQL support. Funding automated testing and MS SQL support could solve this and future problems with MS SQL.

    Kind regards,
  • Picture of Hamed Azimi
    Fri, Jul 29, 2016, 4:38 PM
    Hi David,

    We need a tool (Reservation) that let us add a Reservation to a course. So that those who want to take part in that class, will pay before and will be registered to class, and when all the seats became full, then the class will be started.

    Is this plugin doing what we need now?

  • Picture of Hamed Azimi
    Fri, Jul 29, 2016, 4:40 PM
    Also after installing it, this error came:
    The following plugins in your system are using Events 1 API deprecated handlers: 'mod_booking'.
    Please, update them to use Events 2 API.
  • it's me
    Fri, Jul 29, 2016, 5:02 PM
    Hi, I just uploaded a new version of the booking module, which fixes the describes issues. Kind regards,
1 2 3 4 5
Please login to post comments