Note: You are currently viewing documentation for Moodle 3.1. Up-to-date documentation for the latest stable version of Moodle is probably available here: Booking module.

Booking module

From MoodleDocs

Booking module for managing course participants (online course or offline course)


  • Max participants
  • Waitinglist
  • Automatic course subscription
  • Confirmation mail
  • Download userlist as xls or ods (you can select which custom fields to export)
  • Cancellation system
  • Subscription period
  • Automatic add events to Moodle calendar
  • Tags, categories
  • Automatic enrol users in groups
  • Attachments
  • Sending custom message to users
  • etc.

Set up and configure a booking instance


In this section of the booking setting, general options can be defined:

  1. Booking name: Required field. This is the name of the booking instance, not the name of an event someone wants to book. The booking instance can contain several events (or courses) called "booking options".
  2. Event type: Required field. Helps you to group events by type. If you do not have different types of events (for example you only have courses or tutoring hours), then just use something like "standard" as text.
  3. Booking text: You can add a description of your booking instance. This text will be shown on top of the page with all the booking options available for booking.
  4. Duration: In general you won't need this option. Only use, when you have an event, that lasts a certain time. And within this time, you have several booking options available.
  5. Course points: Leave empty. Can be used to inform people about points they can obtain.
  6. Organizer name: If there is an organiser for all the booking options available, then you can add the name here.
  7. Poll url: If you want to question people after participating in a course, or event you offer, then you might want to have their feedback about the quality. Fill in the poll URL here in order to be able to send the poll url to the people who succesfully booked a booking option.
  8. Teachers poll url: If you assign teachers to certain booking options, then you can send a poll URL to them too.
  9. Attachment: Attachment displayed in the overview of all booking options

Default booking options

These options are used as default values when creating booking options. This allows faster creation of booking options, when certain values are used for all or a large number of booking options.

  1. Limit the number of participants: Enable, if you want to restrict the max. number of participants for a booking option
  2. Max. number of participants: Enter a numeric value for max. number of participants
  3. Max. number of places on waiting list: Numeric value
  4. Default view for booking options: (This should be moved elsewhere)

Restrict answering to this time period

Do not use these settings. These are outdated and will be removed soon, because this is now done in Moodle core. Please use this method for restricting access to the booking instance:

Confirmation email settings

Settings for sending confirmation emails.

Custom labels

Customize the wording for your usecase.

Miscellaneous settings


Additional fields

Connected booking

How to use the booking module

You can use the the booking module as a course activity or on the Moodle frontpage. Adding a booking instance to a course works similar to adding a standard Moodle activity to a course.

    1. Add an activity > Booking
    2. Give a general name (not your EVENT name), booking text will be shown at the top of page.
    3. Default booking limit Numbers can be defined at each event page too.
    4. Time period is very important.
    5. Yes to email settings
    6. Policy page is really useful.
    7. Save and display
    8. Edit booking option (See No3. in step2)
  1. Events settings
    1. Click on the ‘Manage x responses’ link at the top-right corner
    2. Click on the bottom/latest ‘Edit this booking option’ under ‘Mange column’
    3. Give an Event name into ‘Booking’ field.
    4. You can define ‘limit number’ and ‘Restrict time’ here again.
    5. Looks like you can book for other course, but, I think we can ignore this.
    6. Description will be shown on the booking table, very important.
    7. Click on ‘Save and add new’
  2. Editing
    1. You can delete a user’s booking
    2. You can delete an event with all bookings in it.
    3. You can click on the button ‘Download users as .xls’ to download bookings in spreadsheet for each Event, or click on the button at the bottom of page to get a full list (Great!)
  3. Permissions:
    1. Click on the ‘Permissions’ under the ‘Settings’ block.
    2. At the dropdown menu: ‘Advanced role override’ choose ‘Manager’ (or teacher, or any role)
    3. At table: Activity: Booking, tick ‘Allow’ Permission to all five lines (or less)
    4. Save changes
  4. How to add a new booking option
    1. Go to "Manage XX bookings"
    2. Click on "Edit booking option", do not change anything and click "Save and add new"
  5. Special user profile fields
    1. If you want to have certain information about your users (phone numbers), you can define custom user profile fields in the Site admin settings. You have to make them "required", then users have to fill out the form with the information requested before they can proceed to book a course.

CSV import

Create booking options and add users.

Fields in CSV file are (must be in this order):

  1. name - name of booking option
  2. startdate - start date, 0 for no date
  3. enddate - end date, 0 for no date
  4. institution - institution
  5. institutionaddress - institution address
  6. teacheremail - teacher email - to match in users table
  7. useremail - user email to match with user in Moodle
  8. finished - if user has completed activity
  9. maxanswers - max. number of participants (default 0)
  10. maxoverbooking - max. number of places on waiting list (default 0)
  11. limitanswers - limit the number of participants Help with Limit the number of participants (1 for limiting or 0 to disable)
  12. location - location ex. room number

CSV import - activity completion

Fields in CSV:

  1. OptionID - Option ID
  2. UserID - User ID
  3. 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.