Appointment Calendar

Use to view, book, and manage appointments by day or week, depending on the amount of appointment slots.
Note: This document describes the latest component functionality. Go to the store to make sure you have the latest version of the component.

Overview

  • Release version
    Zurich
  • Available sinceQuebec
  • A11Y WCAG 2.1 AA

Anatomy

Learn about the individual parts of appointment calendar.

Appointment calendar

anatomy of the appointment calendar component
  1. Header: Displays calendar title, time zone, slot duration, and view selector
  2. Date picker and calendar grid: Displays the date-time picker and calendar grid with available and unavailable appointment slots
  3. Footer: Displays supplemental details and provides information about the selected appointment; optional buttons can be added to confirm or cancel the selection

Appointment calendar header

anatomy of the appointment calendar header
  1. Date selector: Provides navigation to the previous or next week; allows for quick selection of a specific date or the current date
  2. Time zone indicator: Displays the time zone
  3. Slot duration: Displays the slot duration
  4. View selector: Enables users to switch between Day and Week view

Appointment calendar week grid

anatomy of the appointment calendar week grid
  1. Current day indicator: Indicates the current date
  2. Available slot: Slot that is available for a scheduled appointment
  3. Selected slot: A selected appointment slot that is available
  4. Slot with appointment conflict: An appointment slot that is available and has a conflict
  5. Unavailable slot: An appointment slot that is already filled and unavailable

Appointment calendar day grid

anatomy of the appointment calendar day grid
  1. Date-time picker: Displays the current month, year, and the current selected date; users can select other dates to view the appointment slots
  2. Categories: Appointment slot categories
  3. Available slot: An appointment slot that is available for selection
  4. Selected slot: A selected appointment slot
  5. Contextual information: Displays additional information; also shows slot duration if so configured
anatomy of the appointment calendar footer
  1. Left footer (optional): Displays the time and date of the next available slot
  2. Slot (optional): Optional slot configurable with suitable components
  3. Right footer controls (optional): Allows the user to submit the selected appointment date

Appointment calendar with contextual information

anatomy of the appointment calendar component
  1. Tags (optional): Tag labels in event slot
  2. Contextual information (optional): Additional contextual information in the event pill

Subcomponents

See usage guidance for button

See usage guidance for button bare

See usage guidance for dropdown

See usage guidance for button iconic

See usage guidance for mini calendar

Usage

Use appointment calendar to view and manage appointments by day or week, depending on the amount of appointment slots. This component can either be used in a modal or embedded in context in a larger page.

appointment calendar week

Propose slots

Propose slots by selecting multiple slots instead of scheduling an event with just one. The selected slots are temporarily blocked until one of the proposed slots is selected and scheduled. To propose slots, select the slots and select “Propose Slots”.

Week view

appointment calendar week

Day view

appointment calendar week

Categories

When there are several available slots, configure categories to group the event slots to better organize the calendar. For example: Morning, Afternoon, Evening, and Others.

Week view

appointment calendar week

Day view

appointment calendar week

Contextual information and tags

Use tags (primary and secondary) and additional contextual information in the event slots to identify specific slots. For example, to mark recommended slots. In an event slot, tags display as labels and the contextual information displays in the event slot under the event title.

anatomy of the appointment calendar component

Appointment slot duration

Configure the appointment calendar to display the appointment slot duration in the header. If the appointment slots are of varying duration, then configure the appointment calendar to display each appointment’s slot duration under the slot pill.

appointment calendar week

Configurations

Views supported

Configure the calendar view to present to your users. The available views are Day and Week.

Week view

appointment calendar week

Day view

appointment calendar day view

Locale

Select the language code for your calendar. The default is en (English).

Appointment grid columns

By default, the day view calendar grid displays the time slots in 3 columns (3 time slots per row.) You can change this value to 1 or 2 columns.

Calendar entry title

For the day view, you can edit the title of an entry using alphanumerics and symbols. If the title exceeds the width of the entry slot, the text truncates with an ellipsis, and a tooltip shows the full content on hover.

Design recommendations

Learn how to apply appointment calendar in your design.

better view of many appointment slots with day view
Do

Use the day view for applications that are likely to have many appointment slots.

week view too crowded with many appointment slots
Don’t

Avoid using the week view configuration if there are likely to be many appointment slots. An overcrowded grid forces the user to scroll to see all available slots.

UI text guidelines

These are some recommendations for using text within calendar:

  • Keep all text labels short and concise.
  • Slot content should be descriptive and concise.

Behavior

Learn how appointment calendar behaves when the display changes or a user interacts with the component.

States

Appointment calendar has different states for the day and week views.

Day view

The day view has the following states: default, appointment hover, appointment selected, conflicting appointment hover, conflicting appointment selected, appointment booked and no appointments.

Default
default state of the day view
Appointment hover
hover state for an appointment in day view
Appointment selected
selected state for an appointment in day view
Conflicting appointment hover
selected state for an appointment in day view
Conflicting appointment selected - day
selected state for an appointment in day view
Appointment booked
selected state for an appointment in day view
No appointments - week
no appointments in day view
No appointments - day
no appointments in day view

Responsive behaviors

Learn how appointment calendar responds to changes in a container or display.

Appointment grid

The appointment grid expands to fill the width of its container, but the appointment grid has a fixed height. The grid scrolls vertically as needed to accommodate appointments. If the width is constrained, the grid in the day view scrolls horizontally as well.

Interactions

Learn how appointment calendar responds when a user interacts with it.

Next available appointment

Selecting the Select Next Available button sets the date range to the current view that contains the selected appointment, sets the appointment button to the selected state, and enables the Schedule button.

interacting with the control for selecting the next
available appointment

Setting date range to today

Selecting the Today button sets the date range to the current view that contains today's date.

setting date range to current view containing today's
date

Date- Time calendar

Selecting the current date range opens the mini calendar, enabling the user to select a date. Selecting a date closes the mini calendar and sets the date range to the current view that contains the selected date.

selecting a date with the mini calendar

Appointments

Selecting an appointment sets the appointment button to the selected state and enables the Schedule button.

selecting an appointment enables scheduling

Usability

Appointment calendar complies with all internationalization and accessibility requirements.

Internationalization

When the display translates to a right-to-left (RTL) language, the orientation of all elements within the component flips.

Translated week view

right-to-left language translation for week view

Translated day view

right-to-left language translation for day view

Accessibility

Learn how to access the actionable elements of appointment calendar through keyboard interactions and screen readers.

Appointment calendar tab order

This is the high-level tab order for appointment calendar.

Week view tab order
tab order of appointment calendar component in week
view
Day view tab order
tab order of appointment calendar component in day
view

Keyboard interactions

You can access the actionable elements of appointment calendar with these keyboard keys:

  • Tab: Navigates through actionable items in the appointment calendar in the specified tab order
  • Shift + Tab: Navigates through actionable items in reverse tab order
  • Arrow up, down, right, left: Navigates the user in any direction in the mini calendar grid
  • Enter: Interact with subcomponents, such as the date selector

Reflow

In the Day and Week views, when a user increases the browser zoom level, the component resizes and reflows automatically to fit the screen without losing information. The component supports zoom levels up to 400%.

Mobile screen compatibility

When the user views appointment calendar on a small screen like a mobile screen, the component resizes and reflows automatically to fit the screen without losing information.

tab order of appointment calendar component in day
view

Day view

In Week view, where the content cannot fit in the screen, the user can scroll to find the week of their choice. Each day is enclosed in a collapsed accordion with the current day’s accordion expanded. The footer is locked in position at the bottom of the screen and is not affected by the user’s scrolling to enable them to schedule or modify an appointment.

tab order of appointment calendar component in day
view

Week view