This article provides an overview of the appointment scheduling feature, which allows you to define reading rooms in the Aeon Customization Manager in order to offer patrons the option to book appointments. Patrons have tools available on the web to create, edit, and manage their appointments, as well as the ability to associate a request with an appointment when submitting a new request. Staff can also create and manage appointments on behalf of patrons and associate requests with appointments through the Staff Client.
Click the video below to watch an overview of this feature:
Configuring Reading Room Calendars
A calendar for each reading room must be configured in the Aeon Customization Manager before users or staff can begin to book appointments. The configuration options for the room in the Customization Manager will determine settings such as how many appointment slots are available at any one time for that room, the minimum and maximum appointment length, and if users are required to associate all requests with an appointment.
Configuring Appointment Confirmation Workflows
You can optionally configure your reading rooms to require that appointments booked in the room by patrons on the Aeon web interface are manually reviewed and confirmed by staff in the Aeon Client. Appointment Confirmation interfaces and options are available for staff to use to review, confirm, or cancel appointments in the Aeon Client. Several different appointment notification options and email templates are also configurable at key points in the appointment scheduling/confirmation workflow based on the status of the appointment and the confirmation options in place for the associated reading room.
Managing Appointments in the Client
After a reading room calendar is configured in the Customization Manager, staff will be able to view and manage appointments through the Appointments tab on the main form of the Aeon Client. Individual appointments can be created and managed directly on the reading room calendar on the Appointments tab and via the Appointment form. Appointment management options are also available on the Request form, User Information form, and request queues.
Check for Invalid Time Zones
To avoid any errors involving invalid time zones, the Client will check the time zones configured in the ReadingRooms database table and in the ServerTimeZoneID customization key during the startup process. If any of these values are invalid, an error message will display indicating the problem and then exit. If you encounter this error, please contact your IT department for assistance.
Email templates with the Appointment type can be created or edited in the Customization Manager in addition to the existing Transaction, User, and Activity types. Five email templates, Appointment Cancelled, Appointment Confirmed (Aeon 5.2), Appointment Received (Aeon 5.2), Appointment Reminder (Aeon 5.2), and Appointment Rescheduled are available by default. Appointment tags containing the fields from the Appointments database table and some select fields from the ReadingRooms table are available for both Appointment and Transaction type email templates.
As of Aeon v5.2, fields from the Appointments database table (including StartTime and StopTime) and some select fields from the ReadingRooms table (ReadingRoomName, MinAppointmentLength, MaxAppointmentLength) are available to be added as merge fields to the print templates for requests and callslips (PrintRequest.docx and PrintCallslip.docx). The merge fields can be inserted into the print templates using tools available in Microsoft Word.
The following behaviors were added for handling appointments when managing users in the Client:
- User Anonymization: Appointments are not deleted when a user is anonymized, but the Appointment Name will be removed from the user's appointment records as this information is user-supplied and may contain identifying information. Appointment-type emails that had been sent to the user will be deleted when the user is anonymized.
- Merging Users: Merging a user into another user record will transfer that user's appointments to the new user.
- Disavowing Users: Disavowing a user will clear all appointments from that user's record.
- Deleting Users: Appointment-type emails that had been sent to the user will be deleted when the user is deleted.
A set of feature-specific appointment scheduling web pages are available that allow patrons to schedule and edit their appointments in the web interface. The three main pages that control the patron interface are:
- ViewAppointments.html: Displays a list of all appointments for the logged-in user.
- ViewAppointment.html: Displays details of a single appointment, including the requests associated with that appointment.
- EditAppointment.html: Allows the user to edit or reschedule an appointment.
Installing the Appointment Scheduling Web Pages
The appointment scheduling web pages are not installed by default. These pages must be downloaded from the Aeon Downloads page, manually added to your web directory, and configured to work on your web request forms. For complete instructions, see:
Adding Appointment Details to Web Pages
A new <#APPOINTMENT> tag has been added to the Aeon web platform that is used to display an individual appointment's details. This tag is currently only supported for use on the detailed appointment web page (ViewAppointment.html).
Patron Web Interface
After installing the appointment scheduling web pages, patrons will be able to create, view, reschedule or cancel appointments on the web using a scheduler tool similar to the one in the Client. Patrons will also have the option to create and associate a new appointment with a request directly from the request form. Appointments can be download in iCalendar format for import to a calendar application.
Web Status Lines
New status lines have been added for appointment scheduling. The status lines are located in the Aeon Customization Manager under Web Interface | Status Lines.
|Key Name||Default Text|
|SLAppointmentAssociationError||You cannot view an appointment you are not associated with.|
|SLAppointmentCancelDenied||You cannot cancel this appointment. Please contact staff.|
|SLAppointmentCancelled||Appointment Cancelled. All associated requests have also been cancelled. You can resubmit cancelled requests from the Cancelled Requests menu option.|
|SLAppointmentRequired||Requests for this site require an appointment.|
|SLAppointmentSubmitted||Appointment scheduled. Please visit the appointments page to view or manage your appointments.|
|SLEditAppointment||Complete the required fields below and press Submit to create your appointment.|
|SLEditAppointmentDenied||You cannot edit this appointment. Please contact staff.|
|SLEditAppointmentInvalid||You cannot edit an appointment that has been cancelled or already occurred.|
|SLInvalidAppointment||You must associate this request with an appointment you are associated with.|
This status line was deprecated in Aeon 5.2 and replaced with the new SLRequestViolatesMinLeadDays and SLRequestViolatesMaxLeadDays status lines.
This reading room requires <#MinLeadDays> days notice for requests and appointments. You cannot add a request to an appointment within <#MinLeadDays> days.
The <#MinLeadDays> tag will be replaced with the value configured in the Minimum Lead Days setting for the associated reading room.
This status line displays for multi-site instances of Aeon when submitting requests from the Saved Requests web page if the user attempts to associate a reading room with a request that is for a different site (i.e., when the request has a pre-existing site value that is not compatible with the selected reading room):
Request <#TRANSACTIONNUMBER> was not submitted because this item cannot be used in <#READINGROOM>. You can only request materials for one reading room at a time. Please resubmit this request for the appropriate reading room.
This reading room requires <#RequestMinLeadDays> days notice to add requests to an appointment.
The <#RequestMinLeadDays> tag will be replaced with the value configured in the Request Minimum Lead Days setting for the associated reading room.
Requests cannot be added to an appointment in this reading room more than <#RequestMaxLeadDays> days in advance.
The <#RequestMaxLeadDays> tag will be replaced with the value configured in the Request Maximum Lead Days setting for the associated reading room.
|SLShowAppointment||No default text. This is the web status line that is shown when displaying an appointment.|
|SLShowAppointments||Choose an appointment from the list below.|
*Added in Aeon v5.2
Two data repeaters are used in support of the appointment scheduling web interface. The ViewAppointments data repeater will list a user's appointments on the ViewAppointments.html page, while the ViewAppointmentRequests data repeater will list all requests associated with the current appointment on the ViewAppointment.html page.
Appointment Start Time and Stop Time will be displayed in the time zone configured for the appointment's reading room.
|templateFile||Specifies the path of the template file (typically under the templates folder in the Web) to use.|
|context||Specifies whose appointments are included. There are three options:
|pending||Specifies whether or not to exclude past appointments. There are two options:
Specifies a SQL string that will be included in the query's WHERE clause. The following tables, with their respective aliases, are included in the query. It is recommended to specify the table alias when referring to columns in this parameter:
|orderby||Specifies a SQL string that will define the order of the returned results. An order by clause may refer to any columns from the Appointments or ReadingRooms table. The default order is by ascending appointment start time.|
|templateFile||Specifies the path of the template file (typically under the templates folder in the Web) to use.|
|noDataAction||The message to show when the dataset does not contain any requests.|
|researcherTag||Allows you to limit the repeater to display only those requests that have the specified tag(s) applied to them.|
Specifies a SQL string that will be included in the query's WHERE clause. The ViewAppointmentRequests repeater uses the same table names as the other Request data repeaters in its query:
This attribute should be formatted in the "<TableName>.<FieldName>" style (e.g., "Bundles.Name").
|orderby||The column by which to order the input data, formatted in the "<columnName> [ASC|DESC]" style.|
Enhanced Time Data Attributes
The appointment scheduling feature includes enhanced support for existing time conversion and formatting data attributes (e.g., data-iso8601) in atlasUtility.js. The following additional data attributes are used on the appointments template (DataRow_DefaultAppointment.html) to format appointment times without converting their timezone and to format them as a time range on a given date:
- data-formatOnly: Formats the value specified in the data-serverTime attribute without performing a timezone conversion. When using this attribute, you do not need to specify the data-iso8601 attribute.
- data-formatString: The string used to format the value from data-serverTime. Specifying the default string, "LLL," with this attribute will display the full date and time, while the appointment data repeater uses the string "LT" by default to only show the time component. For a full list of strings that can be used by this attribute for additional formatting options, click here and browse to the 'Localized formats' section.
New API endpoints have been created in support of the appointment scheduling feature. These include four new Reading Room endpoints that will return information about the reading rooms configured and appointment availability within a room and a new User endpoint that will return a list of appointments for a specified user.