Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Book an appointment #6

govuk-design-system opened this issue Jan 12, 2018 · 1 comment

Book an appointment #6

govuk-design-system opened this issue Jan 12, 2018 · 1 comment


Copy link

@govuk-design-system govuk-design-system commented Jan 12, 2018


Help users book things like meetings, appointments or annual leave, based on criteria of their choosing.

screen shot 2018-02-20 at 10 46 26


Anything else

This pattern is used by the following departments:

Copy link

@dashouse dashouse commented Feb 5, 2019

Dropbox Paper audit

On 05 February 2019 the Design System team reviewed a Dropbox Paper document discussing Book an appointment.

The aim was to reduce the number of places containing guidance and code by:

  • migrating relevant, useful content into the Design System itself
  • recording important research findings in the community backlog
  • removing the original Dropbox Paper page

Below is a record of the outcomes of that review.

If you need to, you can see the original Dropbox Paper content in the internet archive.

Research and examples

The following draft guidance was taken from the Dropbox paper file and could be used as the basis for future guidance in the Design System.


Help users arrange a suitable time and place to do something.

For example book a:

  • driving test
  • prison visit
  • calibration test
  • training course
  • citizenship test
  • doctors appointment


When to use this pattern

Use this pattern as an alternative to booking in person or over the phone. Online and mobile appointment booking, when done well, is more convenient for users and frees up your service team for other tasks.

How it works

Understand what your users find important
Do research to find out what factors are important to users when booking with your service (it’s different for different services).

Possible factors include:

  • the time of day
  • the day of the week
  • a specific date or date range
  • as soon as possible
  • the duration
  • the location
  • the cost
  • the type of venue
  • the individual they’re arranging to meet

Use what you learn to decide how to find suitable appointments for people, and how much choice to give them over the appointments they can book.

If most of your users find the same thing important, make this the default option. For example, if most users of your users just want to book the next available slot then show this slot immediately with a secondary option to search using different criteria.

Give people options and alternatives

If a user can’t find an appointment that matches their criteria, offer some that are close matches or let them search again with different criteria.

Consider the effects your design choices will have

The way you present choices will affect people’s behaviour, which may have unintended consequences on the system as a whole. Use research and modelling to predict these effects and mitigate any negative consequences.

Remind people of their appointments

It’s easy to forget when an appointment is. Missed appointments are bad for the user and for the service as a whole.

You can help by offering to remind users by SMS or email before the appointment. You’ll need to do research to understand the optimum number of reminders and how long before the appointment they should occur.

You can also send appointments to the users calendar software (if they use any), so they can see it alongside their other appointments.

Repeat appointments

Here’s how repeat appointments are handled in Google Calendar:



Bed management, Home Office

Hello, I am working on a bed management tool for the Home Office. The primary aim of the tool is to view and book bed availability, ring-fence bulk beds and enable occupancy stats and reports to be drawn up from these daily activities. This is an internal tool with real-time view of availability. The landing page attached is a dashboard view which would be ideal for the senior admin to view; however, the junior and mid-level admin users are the ones who will be doing most of the booking and ring fencing and would need to access and toggle between different sets of data as quickly as possible.


Booking with context, NHS Alpha

Hello world. I'm working on the NHS Alpha, and we're dealing with booking. We've got some interesting problems, and some interesting routes into booking. As a quick example, what we're calling "booking with context":


Also, sheer scarcity of appointments means we're playing with ideas around presenting "first available" before getting into full listings...

A bit more below.

Essentially if you think about the negotiation that happens between a GP (or dental) reception and a patient, that's (sort of) where we're trying to get.

So this screen is "Well we've the next appointment you can have is..."

Following that are two reckons as to what a patient might ask next:

"Um, I don't suppose you've got anything in the morning have you?" and so on.
In the lab people aren't always opting for the very first available appointment (some are), but this approach is setting the scene quite well.

One thing we do need to look at is "depth" - so how many appointments are there? How do I know if I keep digging that there are still appointments? etc.

image here's the "preference stack" as you continue your appointment "negotiation" with the booking system...

Booking as resource planning

We did a demonstrator for a department based on the principle that appointments are an example of resource planning, ERP being an established field in IT for large organisations that have schedules to manage.

We typically include a bunch of factors which are preferences: the earliest available slot, the nearest location, the minimum necessary facilities etc. as well as the essential requirements relating to staff workloads, room accessibility etc.

In the screenshot below, this being an internal demo we've expanded the first presented appointment to reveal the underlying reasoning - you can probably see that it's been ranked based on the collective score of various constraints:


Of course the hard bit is exactly how to discover the best solution when there are many factors to consider. Fortunately, this kind of thing is something that IT can be really good at hence ERP's importance in sectors such as manufacturing and logistics.

Visit someone in prison

Visit someone in prison


Booking a consular appointment

Here's an example for booking consular appointments. The calendar interface is based on the MoJ work for prison visits booking, which was ported to AngularJS and plugged into the backend SAAS (bookingbug). The code is at


Research on this pattern

Digital first careers service

We are currently researching this pattern with our users. This is for the Digital first careers service. Our digital service needs to be inspiring as it is very much not transnational and deals directly with the citizen. Happy to provide more information on the patterns we are testing. This pattern has tested very well with our user base.


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
3 participants