Appointment scheduling
Component ID
2842963
Component name
Appointment scheduling
Component type
module
Maintenance status
Development status
Component security advisory coverage
not-covered
Downloads
1203
Component created
Component changed
Component body
Appointment scheduling is a configurable module that lets you set a calendar (days and active hours) and receive reservations requests for the available dates, for different offices.
General Workflow
- On the front-end, the calendar will be displayed in two colors for the 2 possible states for any given day: available and not available
- Active hours can be divided into 30min slots or 1hr slots
- The module administrator can set a maximum number of N requests that can be received for each slot
- If a day on calendar is marked as available, at least one slot is available for reservation request
- If a day on calendar is marked as not available, no slots are available for reservation request
- After N requests received for a given slot, such gets marked as not available
- The back-office operator has a maximum of N pending requests per slot to evaluate: if all accepted, the slot stays not available; if ; if less than N get accepted, the slot is marked as available
- The back-office operator can perform three actions for each request: confirm, deny and delete
- The user that makes the requests receives a confirmation email
- The user that makes the requests receives a second email in case the requests is accepted or denied; if the request id deleted the user receives no email
- Reservations requests are not modifiable, the user must submit a new request in case of request denied or deleted
Calendar & Form UI
- Days are organized in a monthly view
- If the user clicks on an available day, the form is displayed
- The form has the following fields: Name, Surname, Email, Cell number, Notes. Fields labels are modifiable in the settings.php file. All fields are mandatory.
User Privileges
- Both registered and anonymous users can submit reservations requests
- Registered user: the form autocomplete the fields with the user's Name, Surname and email information
- Anonymous user: the form will also display a privacy text and checkbox (the text can be modified by the module administrator)
Time slots & Reservation requests limit
- Time slots can be of 30min or 1hr, starting from the clock (9.00, 10.00, 11.00, ...)
- In case of 30min slots, reservations can be made as 9.00-9.30, 9.30-10, 10-10.30, etc. It's not possible to reserve slots as 9.40-10.10
- In case of 1hr slots, reservations can be made as 9.00-10.00, 10.00-11.00, 11.00-12.00, etc. It's not possible to reserve slots as 10.30-11.30
- Time slots are configurable in the settings.php file and the configuration is shared among all offices.
- The reservation requests limit is configurable from the back-office, independently for each office.
General office settings (opening hours, receiving emails) can be set from /node/OFFICE-NODE-ID/appointments_management/configure
Security
- The form is protected by a captcha (configurable from Drupal CAPTCHA) for anonymous users
User email
- The user receives an email upon making a reservations request
- The user receives a second email in case the request is confirmed or denied. No mail is received if the request is deleted.
- The email text can be different for each office, configurable from the back-office.
Requirements
Calendar management is built on the powerful library BAT, downloadable with Composer. Use Composer manager to let Drupal manage this step.
Javascript libraries:
- moment.js
- query.validate
- fullcalendar
Download libraries and put them in a place that Libraries can found.
The maintainers can be contacted for paid customisations of this module.
