Skip to content

Availability

How to use the calendar in the UI

By navigating to the Dashboard (yellow tab) users can find the calendar.

availability-example-1

Users can customize which resources and dates are displayed on the calendar by using the radio buttons and date selector on the left of the window.

availability-example-2

Users can change the editing mode from Appointments to Planning Guides by selecting the gear icon availability-example-3 on the top-right of the window. This will allow users to swap between setting up planning guides and creating appointments. Changing the editing mode will impact the opacity of the elements within the calendar.

Record opacity

There are three views (edit modes) in the ezyVet calendar that impact record opacity - Appointments, Planning Guides and eBooking.

Appointments view

availability-example-4

  • Appointments records are completely opaque

    • Double-clicking on an appointment record will open the associated clinical record.
  • Planning Guides are translucent

    • Single-clicking on a planning guide record will open an appointment window where you can create an appointment of the planning guide type displayed.
  • eBooking guide records are not visible.

availability-example-5

Planning Guides view

availability-example-6

  • Planning guide records are completely opaque

    • Double-clicking on a planning guide record will open the planning guide and allow you to edit it.
  • Appointment records are translucent

    • Appointments are not editable when in Planning guide view mode.
  • eBooking guide records are not visible.

availability-example-7

eBooking

  • eBooking guide records are completely opaque

    • Double-clicking on an eBooking guide record will open the eBooking guide and allow you to edit it.
  • Appointment records are not visible

  • Planning guide records are not visible

Handling double parked planning guides

It’s not uncommon to allow bookings for many types of appointments for a given time period. In the example below it’s visible that from 12pm to 3pm Anakin is allowing bookings for both Vaccinations and Consults on the Death Star. This doesn’t mean that a Vaccination and a Consult appointment can be booked at the same time; rather it allows the option to book one or the other.

In this example, in order to follow best practices, a Block Out - Unavailable planning guide was put in place for Anakin during that time period on Tattooine.

availability-example-8

Handling users & resources across multiple departments

When a vet record is bookable in multiple locations within an ezyVet site, planning guides are an important tool to utilize to avoid double-booking as the vet can only be in one place at a time. In this case, if the vet is accepting bookings in one location it makes sense to consider blocking their availability in the other location. In this case, a planning guide should be created with the appointment type of Block Out - Unavailable.

In the example shown below, because Anakin can only be in one place at a time, planning guides have been created for Telemedicine appointments and Consult appointments on the Death Star between 8am and 11am and a Block Out - Unavailable planning guide has been created for Tattooine. This indicates that no appointments should be booked for Anakin on Tattooine for that period.

availability-example-9

It’s notable that Anakin has an appointment to see Mando at 11am on the Death Star. Because he’s on the Death Star, an un-labelled, translucent planning guide was automatically created on the Tattooine schedule at the time of the Death Star appointment to show that Anakin is busy at that time. This should prevent him from being double-booked.

Using planning guides vs appointments for block outs/unavailability

When blocking out a resource’s availability for a specific location, a planning guide should be implemented as shown in the example above.

Planning guides should also be used when a resource is constantly unavailable at a specific time of day. Examples being a lunch break, closing hours for the location or if the resource is working at another location.

When blocking out a resource’s availability for all locations at a specific time, an appointment can be used. Examples could be if the resource is unwell and can’t attend work for a period or is on PTO.

Naming conventions for non-bookable appointment types

Clinics should strive to be as clear and concise as possible when creating their appointment types. When creating an appointment type that indicates the resource is unavailable, it should be stated so. A great example is what has been seen throughout this document - Block Out - Unavailable.

These appointment types should not be bookable by staff or pet-parents and should be communicated to any integration partner that has functionality to book appointments.

Integration Partners should provide the functionality to allow customers to select which appointment types are bookable/non-bookable by pet parents.

Planning guide responsibility

The responsibility for creating, maintaining and communicating planning guides falls on the clinic as it impacts how clinic staff use the calendar feature within ezyVet and how partner integrations will interpret them.

It is the responsibility of any partner that has certified availability functionality to correctly ingest planning guide and appointment type data along with the ability to restrict what appointment types can be booked within their portal.

Understanding availability via the API

Relevant endpoints

Enabling the ezyCAB service

The ezyCAB service is enables access to the /availability endpoint which is crucial for understanding availability via the API.

It’s enabled in the UI by navigating to your integration record and selecting the connect button shown below.

availability-example-10

Once enabled, the button will be grey.

availability-example-11

Workflows to get availability

  1. Call the v3/siteInformation endpoint and store the id.

  2. Call the v1/separation endpoint and store the id and name values.

  3. Call the v2/resource endpoint and store the uid, name and ownership_id values.

    1. Map the ownership_id to the separation.
  4. Call the v2/appointmenttype endpoint and store the uid and name values.

    1. Ensure the customer has informed the partner of any non-bookable appointment types/block outs.
  5. Call the /availability endpoint and use the slots array to find availability.

Availability increments

Currently the /availability endpoint accepts values for the duration field that are greater than or equal to 10 minutes with allowance for increments of 5 minutes.

API availability nuances

  1. The /availability endpoint will return all appointment_types that are on a planning guide or eBooking guide that is assigned to a time slot.

Example

If you had a Recheck appointment_type planning guide entry for 11am-11:30am, AND you also had a Wellness Visit appointment_type planning guide/eBooking at the same time, the /availability endpoint would return both of these appointment_types for that slot (because the guides say that both can be booked at that time.)

  1. The time slots returned by the /availability endpoint are completely dependent on the duration parameter passed to the call, and completely independent of the defined standard length of any appointment_type. That is, if the duration parameter is passed in as 30 then it will report on the 30-minute slot availability of a given appointment_type, even if that appointment_type is defined with a default of 40 minutes.

  2. When using query parameters with the /availability endpoint, only the filter[slots.appointmentType.id][in] will accept a comma separated array as a value. The resources[] and dates[] parameters will need to be repeated to include multiple values.

  3. If a planning/eBooking guide crosses over into any time slot that is returned via the /availability endpoint, it will appear in that time slot entry.

Example

availability-example-12

If you set the duration as 30, the /availability endpoint will return the Consult appointment_type in both the 10:00 and the 10:30 start-time slots.

Certification requirements

When providing availability, are you considering:

  • Existing appointments / unavailable slots
  • Planning guides
    • Do you have a flag for block-out/out-of-office planning guides?
  • eBooking guides
  • Appointment types
    • Are you correctly mapping UIDs to names?
  • Resources
    • Are you providing availability for the correct resource?
    • Are you updating availability for a user's resource if that user has another resource that is booked elsewhere?
  • Can you handle overlapping planning guides?
  • Can you handle separations correctly?
  • Are you using the correct timezone?
  • How are you handling appointment types where the duration will surpass the planning guide slot?
  • Are you using the apiv2.ezyvet.com/oauth/token endpoint for authentication?