Appointment scheduling

Categories

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.