This feature is part of Moodle Workplace, which is available through Moodle Partners.
Appointment is an activity module for teachers to keep track of in-person activities.
It enables the teacher to set up a booking system for one or many in-person or classroom-based sessions, for the students to sign-up for.
This activity module is suitable for either 1-to-1 sessions or multi-session activities such as seminars.
Sessions can have multiple dates and times within a single Appointment activity, and can be created in bulk using the time slots specified in the configuration.
The activity allows attendance tracking.
To add a new Appointment activity the teacher must go to the course page, turn editing on and use the "Add an activity or resource" link to open the activity chooser and pick "Appointment".
When adding a new Appointment, you only need to set it's name and click "Save and display" to start creating the appointment sessions.
To add appointment sessions inside the activity, the teacher will use the "Add" menu, where it is possible to add a single appointment (with multiple dates and times) or multiple appointments in the same day.
When adding a new appointment session the teacher must set a capacity for that session. They can also optionally enable the "waitlist" feature, allow or disallow cancellations of booking by students, and set a location and description for the session.
It is possible to add a session without any date and time. In this case the date and time well be displayed as "not set" in the sessions list.
Sessions support custom fields, that may be setup at system level (going to Site administration > Plugins > Activities > Appointment > Appointment custom fields) and that will be available to all sessions. Although the custom fields are setup at system level, each session will have it's own values for those fields. Only fields with values set will be displayed in the details about the session.
When adding multiple appointments, the teacher must define "Timeframes" to set how sessions will be created. In this case, each timeframe has a date option, a start and an end time, and the option to automatically split sessions within the start and end time (for example, create multiple sessions of 15 minutes each) and also to select a "Break time" that is the time between each session. To create sessions in different days, the teacher is able to add more timeframes when adding multiple appointments.
It is not possible to have appointment sessions with multiple times/dates when adding multiple appointments.
For example if we choose to add multiple appointments and have one timeframe with start date set to 25 November 2019, start time at 13:00, end time at 14:00 and automatic split by 15 minutes with a break time of 5 minutes between each, then 3 sessions will be created: the first starts at 13:00 and ends at 13:15; the second starts at 13:20 and ends at 13:35; and the last will start at 13:40 and end at 13:55.
Signing up to sessions
When a student accesses the course they will see the number of available "seats" for each appointment on the course page.
Accessing the Appointment activity will display the list of available sessions and a button to sign-up. After the user has signed up for a session, the course page will now show the data of the next session rather than the number of available seats. If the date was not set the user will just see the "Booked" status.
If the activity was configured to allow cancellations of bookings, the student can access the activity and cancel their booking for the session (optionally giving a reason for the cancellation) and select another session if available.
The teacher is able to add and remove attendees for sessions as well as overbook (add more attendees than the configured capacity).
Users receive email notifications in result of session booking action, such as sign-up or cancelling. Notification text templates can be configured in "Customised notifications" setting in appointment settings list. Each notification template supports placeholders. To refer to custom fields content, use session prefix, e.g. if your custom field shorname is location, you can refer to it by specifying [session:location] in notification template.