There is an updated version available of this page

Tutorial: Create a booking system for a Therapist

This tutorial shows how to create an appointment scheduling system for therapist. You can see the end result in this demo booking system. It should be straightforward to adapt these instructions to suit your particular need. For instance, the instructions could equally well be used to create an appointment scheduling system for a salon, a photographer or for driver education.

How to use this documentation

The usual way to set up a SuperSaaS schedule is with a “build and test” cycle:

  1. Set up a basic schedule using the wizard
  2. Try if it works as expected
  3. Unless satisfied make changes to the configuration and go back to step 2
  4. When you are happy integrate the schedule into your own site

This documentation will follow this basic pattern but deviates in some places to allow logical grouping by subject. Clicking the ‘Next chapter’ link at the bottom will present the material in a linear fashion but you can quickly jump to a subject of interest through the tutorial index.

Before you start create an account on SuperSaaS if you don’t already have one. It’s free and all you need is a valid e-mail address. Log in to your account to reach the dashboard page. If you’ve already created another schedule before it will be shown on the dashboard page, otherwise it will be mostly empty.

Set up a basic schedule using the wizard

Click the ‘New Schedule’ option in the right-hand menu to start the schedule creation wizard. The wizard will ask a series of questions and create a schedule with sensible default settings for your situation. The first screen of the wizard presents you with a choice between a ‘Resource’, a ‘Capacity’ or a ‘Service’ schedule. This choice is very important because, unlike all other settings, the only way to change it is to start from scratch with a new schedule.

For this example we use a ‘Resource’ type schedule since only one person at a time can visit a therapist. If your schedule can take more than one booking for the same time period, such as a yoga class, then you would need a ‘capacity’ type schedule. On the other hand, if you need to schedule two things at once with each booking, such as a treatment that needs a therapist and a room at the same time, then the ‘service’ schedule would be the better choice. In some situations more than one choice works, simply try out both to see which one you like best and keep that one. You may want to look at a detailed explanation of the different schedule types.

Click ‘next’ to get to step 2 where you determine the basic access model. For our therapist example we need a ‘Booking system’, which requires people to sign up to make a booking. The option ‘Self service’ would give a free-for-all system where anybody can make or delete appointments. This would be appropriate for a closed user group, for example to build a reservation calendar for meeting rooms. The ‘Event calendar’ option, on the other hand, only allows people to look at your schedule and not change anything.

Step 3 asks you whether you have one or more things to schedule. If you have more than one it asks you to list them. If you list multiple resources they can be shown side by side in the schedule. If that is not what you want simply create a separate schedule for each resource. For now we assume there is just one therapist. (If your therapist can perform multiple different treatments then this is not the place to list them, that will come later)

The next step asks you for a title for your schedule. This title, together with your account name, forms the web address that clients see in their browser when they use your schedule. You could just label it “schedule” but it is more helpful to your clients if you pick something descriptive of the thing you are scheduling. We use “Therapist” and click ‘next step’. You can change the schedule name (and your account name) later but in that case the web address of your calendar will change accordingly.

In the last step you can set the availability of your resource. (Depending on the choices you made in the wizard this step will differ.) The settings here just provide a baseline; you can later change opening hours for each individual day or resource. The system can provide the easiest user interface if appointments start at specific hours, because then it can generate ‘chips’ that the client can click to book. The demo shows such a setup. You can enter "*:00, *:30" to make the system draw such a box every half hour. That may not be an option if you offer sessions or treatments of different length, in that case the user can click any spot on the calendar to select a time.

Clicking the “Finish” button creates the schedule, and puts it online right away. We now have a fully working appointment scheduling system, so let’s try if it works.

Menu box

Try out the basic functionality

To use your schedule click the blue ‘Use’ button that you can find in the menu box that is pictured on the right. It is only visible when you are logged in as administrator. Regular users will see the same schedule but with fewer options. You can also find the ‘Use’ button by going to your dashboard page. You can always get to the dashboard by clicking the link in the top right corner of your screen. Another option is to use the bookmark feature of your browser to quickly find your schedule.

Empty schedule When you enter your calendar for the first time you are greeted by an empty schedule. A lot of what you see here can be configured. For example you can show a day or a month at a time, or no schedule at all, but we will get to that later, first let’s try out the basic functionality of the system.

Let’s start by creating an appointment. Simply click on a chip and a ‘New Reservation’ dialog will appear. If the dialog window is in an inconvenient place you can simply drag it by its title bar just like you would with a window on your computer. New Reservation Dialog Instead of navigating to the correct date you can also just change click on the ‘When’ field and change the date. By default, the system asks only for a name and a phone number, we will show you later how to add additional fields.

Click ‘Create Reservation’ and the schedule updates to show the chip is occupied. Click the chip you just created again and a window appears with ‘Update’ and ‘Delete’ buttons that allow you to edit it. The ‘Close’ link simply closes that dialog box again; its function is identical to clicking the red and white close icon in the title bar of the window.

Change the Configuration

You now have a basically functional appointment scheduling system. However, the wizard made a lot of assumptions when it set up your schedule, so it is likely that you will need to change the configuration to better match your needs. Click the ‘Configure’ button to go to the Configuration Overview page to see a summary of all the different options you can change. This page also lets you temporarily block the schedule or delete it entirely. We will discuss the first tab, ‘Resources’, here. The other tabs each have their own chapter.

Resources Tab

Resources tab for a ‘resource’ schedule

The resources tab of the configuration page contains the settings that define the resources, the things you are scheduling. Note that the resources tab will look differently if you are building a ‘capacity’ type schedule instead of a ‘resource’ type schedule. In the first part you can add or delete resources. For instance you could add another therapist to be shown in the same schedule. Be careful that if you delete a resource it will also delete all reservations scheduled that are already scheduled for that resource.

In the section ‘Term used to describe an entry’ you can pick an appropriate label instead of ‘reservation’. In the case of a therapist ‘session’ or ‘treatment’ might be preferable, for instance. This term will then be used in all dialog boxes, help text and email confirmations. We can also change the term used for a ‘user’, for example to change it into ‘client’, but this setting is on the general Layout Settings page. If you use a custom term for a reservation then enter the singular form and the system will convert it to plural where appropriate. For foreign words enter the custom term as "singular,plural".

Under the heading “Limit per user” you can set a maximum number of appointments that a regular client can make. After the maximum is reached he can only change appointments or delete them. You can select whether previous appointments should be included in the total or whether it should only include upcoming appointments. You can also specify a separate limit for the number of appointments that can take place on the same day or in the same week.

The next options determines how long your resource can be booked for. You have three options:

  1. You can let the client specify how long each appointment lasts. In this case you can provide a maximum and a minimum time to limit their choice.
  2. You can give each appointment the same length. In this case you can just specify this length as a default value.
  3. You can let the client choose from a list of options. In this case a box appears where you list the options one by one. Look at the instructions and the help text that appear to understand how to specify the options.

Under the “Price” heading you can specify what you will charge for a booking. Whether you actually want to charge that price through the site or have people pay you offline is set up on the “Process” tab later on. You can choose a fixed amount or let it vary depending on the length of the appointment, the day of the week and several other factors. If you allow repeating appointments then the number of appointments a client makes will multiply the specified amount. For a detailed discussion on how to set up payment please see the payment tutorial.

If you set a buffer time to anything else than zero the system will make sure that there is always some space left in between appointments, for example to clean up. The buffer time is not applied in between an appointment and a closing or an opening time. In the “Constrain start times” field you can list the times that your clients can select as start time. As explained earlier, when both the length and the start times of appointments are fixed the system can display a user interface with ‘chips’ the client can click. In this case the “default length” will set the size of the chip. In the next chapter you will see that you can give certain users (“superusers”), and yourself, the privilege to ignore these constraints.

If you don’t enter start times constraints then an appointment can potentially start anywhere so in that case you probably want to set an appropriate rounding time. This way you can avoid that clients book irregular times like 2:07 pm to 2:23 pm that would leave your schedule full of holes. If you specify both start time constraints and rounding times then only the finish time will be rounded.

When you select ‘Round all times to the nearest day’ the user interface will omit the display of hours and minutes. This is useful for multi-day events, like renting out a vacation home, where it wouldn’t be appropriate to specify a time in minutes. You can further limit the places where clients can book by specifying opening hours. That is done on a different screen by clicking “Change opening hours”.

Back to Tutorial index