Setting Your Availability Rules On A Booking Page

Working hours, overrides, per service windows, and why the slots a client sees are almost never what you expected.

TA The Appntmnts Team August 7, 2026
Article Scheduling Operations

The Short Version

Availability is not one setting, it is a stack of them: weekly working hours, date specific overrides, per service windows, buffers and minimum notice. The slots a client sees are what survives all of them. Most complaints about a booking page come from the interaction between rules rather than any single one.

Availability looks like one setting and behaves like five. A booking page shows a client the slots that survive every rule you have configured, and when the result is not what you expected, the cause is almost always two rules interacting rather than one rule being wrong.

The stack, from the bottom up, is: weekly working hours, date specific overrides, per service windows, then the filters that trim what is left, which are buffers, minimum notice, daily caps and existing bookings. Configure them in that order and troubleshoot them in that order.

This article covers each layer, how they combine, a worked example you can compare against your own setup, and the reasons a page shows no slots when you are sure you are free. Buffers have their own guide at buffer times between appointments, and notice periods are covered separately, so this piece stays on the availability layer itself.

The Weekly Pattern: Working Hours

Working hours are the base layer, a repeating weekly pattern of the times you are open. Almost every scheduling tool models this as a set of ranges per weekday, and almost every real business needs more than one range per day because of a lunch break.

Two things are worth being deliberate about. First, working hours are local to the host, expressed in the host zone. They are a wall clock rule, not a set of instants, which is why they survive daylight saving intact. If that distinction is new, time zone handling in scheduling explains it.

Second, set the working hours you are willing to be booked in, not the hours you happen to be at your desk. These are different numbers for most people. If you arrive at 08:00 to do admin and take your first client at 09:00, the working hours are 09:00, not 08:00. Availability is a commitment, not a description.

Multiple Ranges Per Day

A day such as 09:00 to 12:30 and 13:30 to 17:00 gives you a real break that clients cannot book into. Modelling the break as two ranges is more reliable than modelling it as a recurring blocked event, because a range is part of the availability definition and cannot be accidentally deleted from a calendar.

Date Specific Overrides

An override replaces the weekly pattern for one date. There are three kinds and they all matter:

  • Closed. The date is unavailable regardless of the weekly pattern. A public holiday, a leave day, a conference.
  • Different hours. The date is open, but from 13:00 rather than 09:00 because of a morning commitment.
  • Extra hours. A Saturday you are normally closed, opened for a catch up block.

Overrides beat working hours, always. That precedence has to be unambiguous or you will spend time debugging why a holiday is still bookable. The practical discipline is to enter overrides for a whole period at once rather than as each one arrives, because the ones you forget are the ones that get booked. Holidays and seasonal changes are a big enough topic to have their own piece: see seasonal and holiday availability.

Per Service Availability

Not every service should be bookable at every hour you are open. Common reasons to narrow a specific service:

  • A long treatment that needs to finish before closing, so it should only be offered in the morning.
  • A new client consultation you want limited to two afternoons a week so it does not swallow the diary.
  • A service that requires a room or a machine that is only free on certain days.
  • An online session offered outside your in person hours because it needs no travel.

Per service windows are an intersection, not an addition. The service is bookable where the service window overlaps the working hours, and nowhere else. Setting a service to 08:00 to 18:00 does not extend a 09:00 to 17:00 working day. This is the single most common source of "the setting is on but nothing changed".

If different staff offer the same service on different days, the intersection gains another term, which is where team scheduling starts to acquire its own logic.

How The Layers Combine To Produce Slots

Slot generation is a pipeline. Understanding the order makes troubleshooting mechanical rather than mysterious.

  1. Take the weekly working hours for the date.
  2. Replace them if a date specific override exists.
  3. Intersect with the service window for the service being booked.
  4. Divide the remaining ranges into candidate start times using the slot interval.
  5. Discard any candidate where the service duration plus buffers would run past the end of the range.
  6. Discard any candidate that overlaps an existing booking, including that booking buffers.
  7. Discard any candidate that overlaps a busy event pulled from a connected calendar.
  8. Discard any candidate earlier than now plus the minimum notice.
  9. Discard any candidate later than the booking horizon.
  10. Stop offering the day once a daily cap is reached.

Two details in that list catch people out. The buffer is part of the block, so a 45 minute service with a 15 minute buffer needs a 60 minute hole, and a 45 minute gap between two bookings will not be offered. And minimum notice is measured from the moment the client is looking, which means the earliest bookable slot moves forward through the day.

A Worked Example

Take a single practitioner with this configuration:

  • Working hours: Monday to Friday, 09:00 to 12:00 and 13:00 to 17:00.
  • Service: 45 minute consultation, slot interval 60 minutes.
  • Buffer: 15 minutes after each appointment.
  • Minimum notice: 24 hours.
  • Daily cap: 4 consultations.
  • Override: Wednesday closed for training.

A client opens the page at 10:00 on Monday. The service block is 45 plus 15, so 60 minutes, and slot starts land on the hour. Here is what the page shows.

DayBase RangesOverrideNotice Cut-OffCapSlots Offered
Monday09:00 to 12:00, 13:00 to 17:00NoneEverything today is inside 24 hoursn/aNone
Tuesday09:00 to 12:00, 13:00 to 17:00NoneNothing before 10:00410:00, 11:00, 13:00, 14:00
Wednesday09:00 to 12:00, 13:00 to 17:00Closedn/an/aNone
Thursday09:00 to 12:00, 13:00 to 17:00NoneClear409:00, 10:00, 11:00, 13:00

Work through Tuesday. The morning range 09:00 to 12:00 yields candidate starts at 09:00, 10:00 and 11:00. A start at 11:00 needs until 12:00 including buffer, which fits exactly. The afternoon range yields 13:00, 14:00, 15:00 and 16:00. Minimum notice removes 09:00 because the client is looking at 10:00 on Monday. That leaves six candidates, and the daily cap of four truncates the list to the first four.

Notice what a client sees: a Tuesday that ends at 14:00 and a Thursday that ends at 13:00, on a page for someone who works until 17:00. Nothing is broken. The cap is doing exactly what it was set to do. But if you did not remember setting the cap, this looks like a bug.

Why Clients See "No Slots Available"

When someone tells you their booking page is empty, work down this list in order. It is nearly always one of the first four.

  1. Minimum notice is longer than the visible window. A 48 hour notice on a page that opens showing today and tomorrow shows nothing at all. The client has to page forward to find anything.
  2. The service window does not overlap working hours. An evening service on a business hours schedule produces an empty intersection.
  3. Buffers make the block longer than any remaining gap. The diary looks half empty and every gap is five minutes too short.
  4. A daily or weekly cap has been reached. Silent by design, which is why it is hard to spot.
  5. Overrides cover the period. Leave entered months ago and forgotten.
  6. A connected calendar is reporting busy time you did not expect, often an all day event marked busy rather than free, or a personal calendar that got included in the conflict check.
  7. The booking horizon is too short. A 14 day horizon on a service people book a month ahead.
  8. The client is in a zone where your hours fall overnight. The slots exist, they are at 02:00 for the client, and the page is not obviously empty so much as obviously unusable.

The fastest diagnostic is to open your own booking page in a private browser window as a client would see it, rather than looking at the settings screen. The settings screen shows intent. The booking page shows the result.

Choosing A Slot Interval

The slot interval controls where appointments can start, and it is a trade between client choice and diary tidiness.

IntervalEffect On The DiaryBest For
Equal to the block lengthBack to back, no gaps, highest utilisationHigh volume services with predictable durations
On the hour or half hourPredictable, some dead time between blocksMost professional services
Every 15 minutesMaximum client choice, fragments the diary badlyShort services, or services with no buffer requirement

Fine grained intervals feel generous and are usually a mistake. A 15 minute interval on a 60 minute service lets a client book at 09:15, which strands the 09:00 to 09:15 gap permanently. Aligning starts to the hour or half hour costs a little choice and protects a lot of capacity.

Reviewing Your Rules

Availability settings decay. Someone adds a cap during a busy month and never removes it, a service window is narrowed for a room that has since been freed up, an override covers a trip that was cancelled. Put a quarterly review in the diary and check four things: the working hours still match how you want to work, no override sits in the future that should not, every service window is still needed, and every cap is still deliberate.

Setting This Up In appntmnts.io

appntmnts.io models each of these layers separately: weekly working hours with multiple ranges per day, date specific overrides, per service windows, buffers, minimum notice, daily caps and a booking horizon. Connected calendars contribute busy time to the conflict check, so a meeting created in Google Calendar or Microsoft 365 removes the matching slots without any manual blocking. The preview shows the page as a client sees it, which is the view worth checking after any change.

The features page covers the availability model and the calendar integrations together, and pricing shows what the free plan includes. Once availability is settled, the next thing to get right is what happens when two people reach for the same slot: double booking prevention.

TA

The Appntmnts Team

Scheduling And Calendars, Appntmnts

Share

Put This Into Practice

Get Your Own Booking Page Free

Claim appntmnts.io/yourname, connect a calendar, and share one link. Unlimited bookings, no card at signup, no trial countdown.

Start Free


Free Forever, No Card

Turn This Into A Booking Page In Two Minutes

Claim your link at appntmnts.io/yourname, connect Google, Outlook, Apple iCloud or CalDAV, and let people book real time in your calendar. Unlimited bookings on the free plan, with the limits written out before you sign up.

What You Get At $0

  • A Personal Booking Page With Unlimited Bookings
  • Two-Way Sync With Google, Outlook, iCloud Or CalDAV
  • Automatic Confirmations, Reminders And Timezone Detection
  • Meet And Teams Links Plus The REST API
Compare All Plans