Jan M. Faber Jan M. Faber Nov 16, 2022 4 min read

Matching appointments: booking one spot makes another available

Only allow users to make an appointment on the condition something else is occupied

Matching appointments: booking one spot makes another available

The primary goal of an appointment scheduling system is to make sure there is a spot available before allowing a booking, right? While that’s true, there are a few situations where you want the exact opposite.

As an example, take an event where volunteers help other people, for example with their tax returns. You need to match the volunteers with people needing help. In that case you only want to allow people to book in a spot that’s already occupied by a volunteer. See this example schedule of what that could look like.

Another common use case we’ve seen is a trade show where customers need to be matched with sales people for a demonstration. The number of demonstration booths is fixed, but you only want to allow a customer to book one if a sales person can also be there. (You could also reverse that process, where you allow customers to book any empty spot, which then triggers and email to the sales staff with a request to fill that spot with the customer.)

Matching two players for a game of tennis is another use case, but you can also match more than two. Perhaps you want to match four players for a game of bridge, for example.

Booking on one calendar creates availability in another

Example setup: one on one matching

We’ll go over the steps to set up a schedule where one group schedules their availability (the volunteers, or the sales people) and the other group schedules an appointment with them. In the demo schedule mentioned earlier we’ve put everything in one schedule to visualize what’s going on. But for end users it might be clearer if each group has their own schedule. So here we create one schedule for the group of volunteers, and another for the group to schedule an appointment with the volunteers.

  1. From your Dashboard use the New Schedule wizard to create a “Resource schedule”. In this example we pick “No log in necessary” and “One” resource (we’ll show you how to do more than one later on). Name your schedule “Volunteer signup” and next define the spots where they can sign up. After clicking Finish you can click “Opening Hours” and fill in “Closed before” and “Closed after” to specify when the activity takes place.

  2. Next go through the New Schedule wizard again and this time pick a “Service schedule”. We pick “No log in necessary” and name this schedule “Help needed”. We define one service, for example “Help with tax return” that takes 60 minutes. We don’t add any “Required resources” yet, we’ll do that later. Again, click Finish and then the Opening Hours link to specify when it will be available, matching the hours of step 1.

  3. Now we connect the two schedules. Click the “Configure” button for the “Help needed” schedule and go to the “Services” tab. Next click the Edit icon (1), select the resource “Volunteer signup” (2), click the “⊗ occupied” button (3), then click the “⊗” button (4), and finally click “Update service”.

Service for one-on-one matching

  1. Let’s test it. When you click “Use” to go to the schedule you should see “No available space found”, because no one has signed up yet to be a volunteer. Go to the Dashboard, select the “Volunteer schedule” and sign up there. Now go back to your “Help needed” schedule and you should see a single spot available there.

  2. If everything works as expected you may want to improve the schedules with things like confirmation emails, or adjust the process to ask more detailed information. And, finally, give the link to each group so they can start scheduling.

Extending to multiple concurrent spots

Let’s say you have multiple volunteers, or sales people, available concurrently. Starting from the previous example, we’re going to add an additional resource schedule to keep track of the number of booked users.

  1. Go to the New Schedule wizard and create a new “Resource schedule”, click “Internal use”, and on the question of how many things we want to schedule click “More than one”. Next add 2 things, “Spot 1” and “Spot 2” on the list of things to schedule. In the next step name the schedule “Available spots”. You could also name it “Rooms”, “Tables” or “Sales booth” as appropriate to your situation. There is no need to set Opening Hours, the system will use those from the other schedules.

  2. Make room for an extra volunteer. On the “Volunteer signup” schedule, click “Configure”, then “Resources"tab, then the link "enter a list”, and add “Volunteer 1” and “Volunteer 2” (rename the resource that’s already there).

  3. Now we set up the connection. On the “Help needed” schedule click “Configure” and go to the “Services” tab. Select the option “Multiple reservations can take place at the same time” and under the heading “Service selection” choose “Pick the first”, save the page and go back to that same tab. Edit the service and click the “or” button to get an extra set to match. Now configure one spot to match with “Volunteer 1” and the other with “Volunteer 2” as in the screenshot below.

Service for two-on-two matching

More complex scenarios

Using the technique outlined above it should be clear how to match a larger number of volunteers but it’s also possible to build even more complex scenarios. You can show different availability to a different group, for example, giving the elderly a chance to book first before allowing younger people. We’ve outlined a number of complex scenarios in the documentation on combining schedules. Also, each schedule has the ability to read availability from an Outlook or Google calendar, or publish appointments to them, this allows even more flexibility by connecting to web services outside SuperSaaS.

As far as we’re aware the ability to combine calendars like this is unique to SuperSaaS. In mathematical terms, this is called a ‘Logical AND, OR and NOT’ on the available space in a schedule. But don’t worry if that does not mean anything to you, the end result should be that you can fit your appointment scheduling tool to your business, instead of the other way around.