What this plugin does
Appointments lets people offer time for conversations — recurring office hours, a single day or a link to an external booking page — and lets invited or eligible people book it. The appointment appears in both Moodle calendars, and confirmations, reminders and cancellations arrive as Moodle messages. Appointments is person-centred: you keep one set of office hours and decide who may see it.
Who this is for
| Role | What they do |
|---|---|
| Trainer | Offers office hours as host, invites people, cancels with a reason, records whether an appointment took place |
| Manager | Offers talks to their reporting line in the org chart (same steps as a trainer, visibility My reporting line) |
| Learner | Books an offered time or declines an invitation, sees own appointments, cancels within the notice period |
| Platform administration | Maintains site-wide message templates |
| Site administrator (eLeDia) | Configures the plugin settings and decides whether time may be offered to everyone |
Anyone who holds the host capability in at least one course (by default teachers, editing teachers and Moodle's Manager role) can offer time; this handbook calls them host. Every logged-in user can book.
Core concepts
- Availability — recurring office hours (Weekly), a Single day, or an External booking link.
- Time window — a concrete bookable time generated from an internal availability.
- Invitation — a targeted request to book a time, or to use an external service.
- Appointment — the record created when someone books an internal time window. It appears in both people's Moodle calendars.
- Visibility — who may see and book a host's time: Invited people only, Learners of selected courses, Members of an Audience, My reporting line or Everyone on this site (only if the site allows it).
Journeys by role
Trainer: offer office hours or an external booking link
- Open Appointments in the primary navigation (hosts open it from the launcher) and choose Office hours.
- Choose Add availability (the plus icon in the header).
- Enter Title, Schedule rule (Weekly, Single day or External booking link), times, Appointment length (minutes), Capacity, Booking mode, Visibility and Venue type (Place, Link, BigBlueButton room, Room or External booking link).
- For an external service, choose External booking link and enter its HTTPS address. This creates no Moodle time windows.
- Save. For internal availabilities, use Manage time windows to Block window or Unblock window; Pause hides free times without cancelling anything, Resume shows them again.
Trainer: invite people
- Choose Offer appointments in the section navigation.
- Choose an availability, or enter up to three one-off time windows instead.
- Search people and select one or more eligible people, pick the Invitation template and the Invitation expiry (days).
- Click Send invitations. Each person receives a message with a booking link; the first booking of a shared time wins.
For an external availability the booking link opens the external page. When the person has booked there, open Office hours and choose Mark externally booked beside the invitation. This only updates the invitation status; the external service keeps its own booking record.
Trainer: record the outcome
- Open My appointments and find Appointments to review once an appointment has started.
- Choose Record outcome, select Took place or Did not attend and optionally enter a Private note (visible only to you).
- If the invitation came from a course, Moodle notes are enabled and you may manage notes there, you can tick Also add this note to the course notes, where course participants with access can see it. The same text is then also saved as a Moodle course note and follows Moodle's note visibility; only the copy in Appointments stays private.
Trainer: cancel an appointment
- Open My appointments; your appointments are listed under Appointments you host.
- Optionally enter a Reason for cancellation or change (optional) and click Cancel. The participant receives the reason with the cancellation.
Hosts can cancel at any time.
Learner: book a time or decline an invitation
- Open Appointments in the primary navigation (under Learn), or follow the link in the invitation message.
- Under Invitations to answer, click one of the offered times to book it — or click Decline invitation.
- To book with a host who offers time to you without an invitation, open Book an appointment from the host's profile (section Office hours) and click a time.
- For an external invitation, follow the link in the message and book there; the host then marks the invitation as externally booked.
Learner: cancel an appointment
- Open My appointments; your bookings are under Upcoming appointments.
- Optionally enter a reason and click Cancel. Cancelling is possible until the configured cancellation lead time before the start; after that, contact the host.
Platform administration: maintain message templates
- Open the templates page at
/local/lernhive_appointments/templates.php. - Add or edit a template with Name, Message type, Subject and Message text. Site templates are available to every host; hosts can keep their own templates on the same page.
Settings that matter
All settings are in Site administration → Plugins → Local plugins → Appointments and belong to the site administrator:
| Setting | Default | Effect |
|---|---|---|
| Enable Appointments | on | switches every surface on or off |
| Window generation horizon (days) | 28 | how far ahead time windows are generated |
| Maximum seats per time window | 8 | upper limit for small-group appointments |
| Invitation expiry (days) | 7 | default expiry of invitations |
| Cancellation lead time (hours) | 24 | until when participants may cancel |
| Reminder lead time (hours) | 24 | when the reminder is sent |
| Retention (months) | 12 | when appointments, invitations and notes are deleted after the meeting |
| Wording preset | Higher education — office hours | default wording of templates and titles (School — consultation, Corporate — conversation, Higher education — office hours) |
| Allow offering time to everyone | off | whether hosts may choose Everyone on this site |
Limitations
- Appointments does not manage bookings at external services; the host confirms the external status manually.
- External availabilities create no Moodle appointment, time window, calendar entry or reminder.
- Moving or rebooking an appointment has no button yet; cancel and book a new time instead.
- The booking buttons do not ask for a concern, and declining does not ask for a reason.
- The templates page is not linked from the other pages yet; open it by its address.
- BigBlueButton rooms must be visible to the host; participants see the link only if they can access the activity.
- Seminar Management rooms are optional, read-only references; Appointments reserves no rooms and checks no room conflicts.
- No waitlists, prices, recurring series or external calendar synchronisation.
Troubleshooting
| Symptom | Check | Resolution |
|---|---|---|
| "There are no bookable times available right now." | The availability is enabled, internal, within its validity dates and has generated windows; the host's account is active. | Adjust the schedule, resume the availability, or ask the site administrator to check scheduled tasks. |
| A host's times are missing although the availability is enabled | The host's account may be suspended: suspended hosts are hidden and their profile shows no booking link. Existing appointments stay. | Reactivate the account; the free times reappear. |
| A person cannot see a time | The visibility of the availability and the person's course, Audience or reporting-line membership. | Correct the visibility or ask the host to invite the person. |
| Cancel is refused | The cancellation lead time has passed. | Contact the host. |
| External invitation does not open the booking page | The saved address and that it starts with HTTPS. | Edit the availability and send the invitation again. |
| BigBlueButton link unavailable | Whether the activity is visible to the participant. | Correct course or activity visibility, or use another venue. |
| Record outcome is missing | The appointment must have started and still be confirmed. | Open it after its start; cancelled appointments get no outcome. |
| Course note option missing | The invitation needs a course context, Moodle notes must be enabled and the host needs moodle/notes:manage in that course. | Ask the course or site administrator. |
Screenshots
No screenshots yet.