LibCal Booking Consultations - ucsf-ckm/ucsf-library-ux-and-web-documentation GitHub Wiki

Why use a booking system?

  • LibCal allows users to book consultations directly with experts during times allotted by the staff member
  • LibCal provides a uniform experience for users, so they don't have to navigate a different approach when contacting someone new
  • Saves a lot time and back-and-forth emailing for both users and staff
  • A LibCal admin can see and respond to request in an emergency if the staff member is unavailable

Why not email?

  • Dead end for users if staff member is out
  • Requires waiting for a response and multiple interactions — does not respect the time of the user or staff member
  • Exposing email addresses (rather than using a form) is a magnet for spam

UCSF limitations as of Jan 2024

LibCal allows Zoom integration, but UCSF disallows it for security reasons.

  • Problematic from a HIPAA perspective
  • Hesitant to approve any JWT integrations as it requires an owner-level generated key for Zoom user accounts and meetings

Workaround from Micquel

Workaround to the Zoom integration issue, what we recommend doing for LibCal Bookings is:

  1. Create a recurring meeting in Zoom or use your personal Zoom link - enable the Waiting Room if you’re comfortable doing so to help back to back consultations not pop in to Zoom on each other if one goes a bit long…
  2. Add the recurring Zoom link to the “Directions” field in your Bookings setup
  3. Edit your email notification messages to also include the Zoom Link, Meeting ID, and Passcode

Also see video walkthrough.

LibCal default approach

The default approach requires linking to a separate page in LibCal.

NOTE: If someone want to share the default LibCal pages, they are organized by location (Online is a location). Each location must have groups assigned to it and individuals manually added to those groups. This is clunky and can get out of date easily. To edit these areas: LibCal > Admin > Appointments > Manage Locations

page for all locations and groups

default

page for individual

default

Better approach: full integration

We have adapted the LibCal widgets code snippet to present a more elegant appointment pop-up right on the expert page when the user clicks Book a Consultation. This allows the user to see all the relevant context and information.

default

LibCal steps

  1. LibCal admin must enable appointments for the individual staff member LibCal > Admin > Accounts
  2. That staff member must then set up their personal availability and enable sync with Outlook
  3. LibCal admin must copy the ID number now attached to that staff member from Admin > Accounts

edit individual

Once in the editing screen, the ID number is displayed at the end of the URL

ID in URL

Expert page steps

A new code snippet must be created for the new staff member. Everything is the same as for the others except the ID number which must be inserted in a few places.

<!-- for Scott ID 48953 -->

<script>
jQuery(function(){
   let el = jQuery("#mySched48953");
   if (el.length) {
     el.LibCalMySched({ iid: 138, uid: 48953, gid: 0,  width: 500, height: 450, title: "Book a Consultation" });
   }
});
</script>

Those snippets are saved in a hook within the Generate Press theme for WordPress which we are using for the main library site Dashboard > Appearance > Elements > Legacy Hooks > After Content

Additional details about the hook contents

In addition to one entry for each staff member, there is a single line at the top of the hook to enable the scheduling code.

<script src="https://api3.libcal.com/js/myscheduler.min.js?002"></script>

To get the code snippet to fire, mySched9794 (using the correct ID number for the individual staff member) has to be added to the Book a Consultation button in the CSS ID field (within the editing interface for the Elementor page builder plugin)

add ID number

Springshare set-up and sync

These links might be helpful for individuals to set up their availability and calendar syncing.

⚠️ **GitHub.com Fallback** ⚠️