# Schedules

Schedules are the way Diarybook manages when users are and are not available for appointments. A schedule record groups together one or more time rules — called blocked times and free times — that together describe a pattern of availability for one or more users.

Common uses include annual leave, recurring meetings, training days, and public holidays.

## Why this matters

Time a user is on leave, in a recurring meeting, or otherwise unavailable is blocked automatically, so nobody has to remember to check a calendar before offering an appointment slot.

Schedules aren't only for staff who take appointments. A user who isn't a service provider (doesn't have **Can Take Appointments**) can still hold a schedule if they have **Can Use Schedules** — their busy times then show on the calendar for colleagues to see, purely for visibility. It has no effect on appointment booking, since appointments can't be made against a user without **Can Take Appointments** in the first place.

## Before you start

Every service provider (a user with **Can Take Appointments**) automatically has **Can Use Schedules**. It can also be granted to a user who is not a service provider, so their busy times appear on the calendar without giving them any part in appointment-taking.

<!-- NEEDS CAPTURE: permission level required to create or edit schedule records for other users (general Settings rule, or something scoped to Schedules specifically). answer account administrator or set appointments for all users -->

## The elements of a schedule

| Field | Purpose |
|-------|---------|
| Schedule Name | A description of the schedule, for example *Annual Leave* or *Weekly Team Meeting*. |
| Location | Optionally, restrict the schedule to a specific location. Left blank, the schedule applies regardless of location. |
| Users Affected | **Me**, **All Users**, or **Selected Users** (a user picker is shown) — who the schedule applies to. |
{.table}

A schedule record also holds one or more **schedule entries** — the individual time rules, blocked or free, that define when the schedule is active. See [Managing schedules](#managing-schedules) below.

## Managing schedules

Go to the **Settings** area and select **Schedules**. The screen shows a list of your schedule records:

| Column | Description |
|--------|-------------|
| Reason | The name of the schedule record |
| Starts | A summary of when the schedule begins |
| Ends | A summary of when the schedule ends |
| Users | The users affected by the schedule |
| Location | The location the schedule applies to, if any |
{.table}

### Adding or editing a schedule record

Click **Add Schedule Record** in the toolbar to create one, or click an existing row to edit it. This opens a side panel with the Schedule Name, Location and Users Affected fields, and the schedule entries list below them.

Before saving, add one or more schedule entries.

### Deleting a schedule record

Select a record in the list and click **Delete**.

<!-- NEEDS CAPTURE: delete confirmation dialog wording. -->

### Schedule entries

A schedule record contains one or more schedule entries. Each entry appears as a row in the schedule entries list showing whether it is a blocked or free time, the date range, time range and days it applies to.

Use the toolbar above the list to manage entries:

* **Add Busy Time** — add a period when the user is unavailable for appointments
* **Add Free Time** — add an exception within a blocked period when the user is available
* **Delete** — remove the selected entry

Click **Add Busy Time**, **Add Free Time**, or an existing entry row to open the entry editor.

### Adding or editing a schedule entry

Each schedule entry has three sections: dates, times and days.

#### Dates

Choose when the entry is active:

| Option | Effect |
|--------|--------|
| Always | The entry applies on all dates |
| Date Range | The entry applies between two specific dates — **From** and **To** date fields are shown |
{.table}

#### Times

Choose what time of day the entry covers:

| Option | Effect |
|--------|--------|
| Always | The entry covers the full day. Only available when a date range is set. |
| Time Range | The entry applies between two specific times — **From** and **To** time fields are shown |
{.table}

#### Days of the week

Use the day sliders to choose which days of the week the entry is active. This allows recurring patterns such as blocking every Monday, or every Tuesday and Thursday.

If all days are enabled the entry applies every day within the date and time range defined above.

Click **Save** to save the entry or **Cancel** to discard it.

When all schedule entries are in place, click **Save** to save the record or **Cancel** to discard everything.

### Example: Annual leave

A user is on annual leave for two weeks and unavailable for all appointments.

1. Click **Add Schedule Record**
2. Enter *Annual Leave* as the Schedule Name
3. Set Users Affected to **Me**
4. Click **Add Busy Time**
5. Set Dates to **Date Range** and enter the start and end dates of the leave
6. Set Times to **Always**
7. Enable all days of the week
8. Click **Save** on the entry, then **Save** on the record

### Example: Weekly team meeting

All users are unavailable every Monday morning from 9am to 10am.

1. Click **Add Schedule Record**
2. Enter *Monday Morning Meeting* as the Schedule Name
3. Set Users Affected to **All Users**
4. Click **Add Busy Time**
5. Set Dates to **Always**
6. Set Times to **Time Range** and enter 09:00 to 10:00
7. Enable **Monday** only in the days of the week section
8. Click **Save** on the entry, then **Save** on the record

### Example: Leave with a working day exception

A user is on leave for a week but is available on Wednesday afternoon.

1. Click **Add Schedule Record**
2. Enter *Leave with Wednesday exception* as the Schedule Name
3. Set Users Affected to **Me**
4. Click **Add Busy Time**, set a date range for the full week, set Times to **Always**, enable all days — click **Save**
5. Click **Add Free Time**, set the same date range, set Times to **Time Range** for the available Wednesday hours, enable **Wednesday** only — click **Save**
6. Click **Save** on the record

## What to watch for

### A Free Time entry seems to do nothing

A Free Time entry only carves out an exception within an overlapping Busy Time entry — it has no effect on its own. If a user is still shown as unavailable, check that the Free Time entry's date, time and day range actually falls inside a Busy Time entry covering the same period.

### A schedule for a user without Can Take Appointments doesn't affect appointment booking

Giving a user **Can Use Schedules** without **Can Take Appointments** only changes what shows on the calendar — their busy times become visible to colleagues, but since appointments are never made against such a user, there's nothing for the schedule to block.

## Related

- [Work Hours](/docs/your-user-profile/work-hours/)
- [Locations](/docs/setting-up/locations/)
- [Users and permissions](/docs/setting-up/users-and-permissions/)

---
Source: https://diarybook.com/docs/setting-up/schedules/
