> ## Documentation Index
> Fetch the complete documentation index at: https://docs.timetracker.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Work schedules overview

> Work schedules set the hours each person is expected to work. See how schedules, assignments and exceptions decide someone's expected day.

A work schedule says **when a person is expected to work**. TimeTracker uses it to
work out expected hours, to shade days off in the Planner, and to decide which
days a time-off request actually consumes.

<Note>
  A schedule is what someone is **expected** to work. Tracked time is what they
  **actually** did. Timesheets compare the two. See
  [/timesheets/expected-vs-tracked-hours](/timesheets/expected-vs-tracked-hours).
</Note>

## What a schedule is

A schedule is a repeating weekly pattern. Each day of the week is either a
working day with one or more work periods, or a day off.

A schedule carries four things:

| Part           | What it means                                   |
| -------------- | ----------------------------------------------- |
| Name           | What you call it, such as `Standard week`.      |
| Repeats        | Every week, or every 2 weeks (an A/B rotation). |
| Week starts on | Monday, Sunday or Saturday.                     |
| Timezone       | The clock the hours are read in.                |

The timezone lives on the schedule, not on the workspace. That trips people up,
so it has its own page: [/schedules/schedule-timezones](/schedules/schedule-timezones).

## The three pieces

Schedules work as three layers. Learn these names and the rest of the area makes
sense.

<CardGroup cols={3}>
  <Card title="Schedules" icon="calendar">
    The repeating pattern itself. Build it once, reuse it for many people.
  </Card>

  <Card title="Assignments" icon="users">
    Who follows which schedule, and between which dates.
  </Card>

  <Card title="Exceptions" icon="calendar-x">
    One-off changes for a single date, such as a shutdown day.
  </Card>
</CardGroup>

## How a day is decided

For any person and any date, TimeTracker picks one answer.

<Steps>
  <Step title="Find the governing schedule">
    The most specific assignment that covers the date wins: a **person**
    assignment beats a **group** assignment, which beats the **workspace**
    default.
  </Step>

  <Step title="Read that day from the pattern">
    The pattern gives the work periods for that weekday, or marks it a day off.
    A 2-week schedule first works out whether the date falls in Week A or Week B.
  </Step>

  <Step title="Apply an exception, if one applies">
    An exception only applies when it sits at the same level as the governing
    assignment, or a more specific one.
  </Step>
</Steps>

<Warning>
  Because an exception must be at least as specific as the assignment, a person on
  their **own** schedule does not pick up a workspace-wide exception. Their personal
  schedule wins. People on the workspace default do pick it up.
</Warning>

## Example

Northwind Studio runs one schedule called `Standard week` – Monday to Friday,
09:00 to 17:00, `Europe/London`.

* Everyone is assigned `Standard week` at the workspace level.
* Ana Ferreira is a part-time contractor, so she gets her own assignment to a
  schedule called `Part-time Mon/Wed/Fri`.
* Tom Whitfield adds a workspace exception of type **Public holiday** for
  26 December.

On 26 December, Sarah Lin and Jonas Bergman are off – they are on the workspace
default, so the workspace exception reaches them. Ana still shows her normal
Friday hours, because her personal assignment outranks a workspace exception.
To give Ana the day off too, Tom adds a person-level exception for her.

## Where schedules show up

| Surface     | What it uses the schedule for                                  |
| ----------- | -------------------------------------------------------------- |
| My Schedule | Your own expected hours for the next 14 days.                  |
| Timesheets  | Expected hours for the week, next to what you tracked.         |
| Time Off    | Which days a leave request actually consumes.                  |
| Planner     | Shading days off and the capacity a block is measured against. |
| Time Clock  | Expected minutes and absence detection.                        |

## Plan and app

Work schedules is an **app**. Turn it on or off in **Settings → Apps**. It is on
by default and included on **Free**.

Turning the app off hides schedules and stops timesheets showing expected hours.
Every schedule you saved is kept. Time Clock depends on Work schedules, so you
cannot run Time Clock with schedules switched off. See
[/concepts/apps-and-modules](/concepts/apps-and-modules).

## Permissions

| Action                      | Capability        | Roles that hold it by default                              |
| --------------------------- | ----------------- | ---------------------------------------------------------- |
| See your own schedule       | `schedule.view`   | Owner, Admin, Project Manager, Finance, Member, Contractor |
| Create and assign schedules | `schedule.manage` | Owner, Admin                                               |

Project Manager can **see** schedules but not edit them. You can widen that with
a custom role. See [/schedules/schedule-permissions](/schedules/schedule-permissions).

## Common questions

<AccordionGroup>
  <Accordion title="Do I have to create a schedule before people can track time?">
    No. Time tracking works without a schedule. A schedule only adds the
    "expected" side, so a timesheet can say whether the week is short.
  </Accordion>

  <Accordion title="Can one person be on two schedules at once?">
    No. Only one assignment per level may cover a given date. If you assign a new
    schedule over an existing one, TimeTracker asks you to end the old one first.
  </Accordion>

  <Accordion title="What happens if someone has no schedule at all?">
    Every day resolves as a non-working day with zero expected hours. Nothing
    breaks – there is no expectation to compare against.
  </Accordion>

  <Accordion title="Does approved time off change the schedule?">
    Approved leave does not rewrite the schedule. Time off is tracked in its own
    area and shown on the Planner and the Time Off timeline.
  </Accordion>
</AccordionGroup>

## Troubleshooting

| Problem                              | Likely cause                                                                                                  |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------- |
| Timesheets show no expected hours    | The Work schedules app is off, or nobody is assigned a schedule.                                              |
| A person shows zero expected hours   | They have no assignment covering that date. Check the Assignments table.                                      |
| A holiday did not reach someone      | They have a person-level assignment, so a workspace exception is outranked. Add the exception at their level. |
| You cannot open Settings → Schedules | You need `schedule.manage`.                                                                                   |

## Related guides

<CardGroup cols={2}>
  <Card title="Create a schedule" href="/schedules/create-a-schedule">
    Build a weekly or two-week pattern.
  </Card>

  <Card title="Assign a schedule" href="/schedules/assign-a-schedule">
    Put people, groups or the whole workspace on a schedule.
  </Card>

  <Card title="Working hours and days off" href="/schedules/working-hours-and-days-off">
    Set hours per day, split shifts and overnight periods.
  </Card>

  <Card title="Schedule timezones" href="/schedules/schedule-timezones">
    Why the timezone lives on the schedule.
  </Card>

  <Card title="My Schedule" href="/schedules/my-schedule">
    What each person sees for themselves.
  </Card>

  <Card title="Expected vs tracked hours" href="/timesheets/expected-vs-tracked-hours">
    How the two numbers meet on a timesheet.
  </Card>
</CardGroup>
