> ## 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.

# Schedule timezones

> A person's working timezone comes from the schedule they are assigned, not from the workspace. Here is how to set it up for a distributed team.

**A person's timezone comes from their schedule, not from the workspace.**

This is the single thing people get wrong about schedules. Read this page before
you set up a team spread across countries.

## The rule

Every schedule carries its own **Timezone** field. When TimeTracker works out
what someone is expected to work on a date, it reads their hours in that
schedule's timezone.

The workspace timezone is a **default and a display setting**. It fills in the
timezone box when you create a new schedule, and it decides which calendar day is
"today". It never overrides a schedule.

<Warning>
  Changing the workspace timezone does **not** change anybody's working hours. To
  move someone's working day, change the timezone on the schedule they are assigned,
  or move them to a different schedule.
</Warning>

## Why it works this way

An agency with people in London, Lisbon and Toronto has three different working
days. A single workspace timezone cannot describe all three.

If the workspace owned the timezone, "09:00 to 17:00" would mean London hours for
everyone. The Toronto designer would be shown as expected at work at 4am local
time, and their timesheet would say they were short every single day.

Putting the timezone on the schedule fixes that. Each schedule says 09:00 to
17:00 in the clock that is real for the people on it.

## When to use it

* Anyone on your team works in a different country from the workspace default.
* A group works a night shift that crosses midnight in their own timezone.
* You hired a contractor abroad and their expected hours look wrong.

## How to set the timezone

<Steps>
  <Step title="Open Settings → Schedules">
    Select the schedule in the left rail.
  </Step>

  <Step title="Set the Timezone field">
    Choose the IANA zone, such as `Europe/London`, `Europe/Lisbon` or
    `America/Toronto`.
  </Step>

  <Step title="Save">
    Click **Save**. The change applies to everyone assigned to that schedule.
  </Step>
</Steps>

<Note>
  One schedule holds one timezone. To give two people the same hours in two
  different zones, you need two schedules. **Duplicate** the first one and change
  only the timezone on the copy.
</Note>

## A distributed team, worked through

Northwind Studio is based in London and hires two people abroad.

| Person        | Where they work | Schedule                 | Timezone        |
| ------------- | --------------- | ------------------------ | --------------- |
| Sarah Lin     | London          | `Standard week`          | `Europe/London` |
| Jonas Bergman | London          | `Standard week`          | `Europe/London` |
| Ana Ferreira  | Lisbon          | `Standard week – Lisbon` | `Europe/Lisbon` |

<Steps>
  <Step title="Duplicate the standard week">
    Tom Whitfield opens `Standard week`, clicks **Duplicate**, and gets
    `Standard week (copy)`.
  </Step>

  <Step title="Rename and re-zone it">
    He renames it `Standard week – Lisbon` and sets **Timezone** to
    `Europe/Lisbon`. The day rows are untouched – still Monday to Friday, 09:00 to
    17:00.
  </Step>

  <Step title="Assign Ana to it">
    In **Assignments** he assigns `Standard week – Lisbon` to **Ana Ferreira**.
    Her person-level assignment beats the workspace default.
  </Step>
</Steps>

The result:

* Sarah's day is 09:00 to 17:00 London time.
* Ana's day is 09:00 to 17:00 Lisbon time – one hour earlier in London terms.
* Both are expected to work **8 hours**. Expected hours are the same number; the
  clock behind them is not.

If Northwind later hires in Toronto, Tom duplicates again and picks
`America/Toronto`. Nothing about the workspace timezone changes.

## Timezones and daylight saving

Schedules resolve by **calendar date**, not by a fixed instant. A schedule that
says 09:00 to 17:00 stays 09:00 to 17:00 on the day the clocks change, and the day
still counts as 8 expected hours.

This is what you want. Nobody owes an extra hour because their country moved its
clocks.

## Where the timezone shows up

| Surface     | What the timezone affects                                                                 |
| ----------- | ----------------------------------------------------------------------------------------- |
| My Schedule | The clock times shown for each work period.                                               |
| Timesheets  | Which calendar day expected hours land on.                                                |
| Planner     | The grid is drawn in the **workspace** timezone; day-off shading comes from the schedule. |
| Time Off    | Which days count as working days for a request.                                           |

<Note>
  The Planner grid itself uses the workspace timezone, so one shared grid can
  overlay several people. The shading of days off still comes from each person's own
  schedule.
</Note>

See [/concepts/dates-times-and-timezones](/concepts/dates-times-and-timezones)
for how TimeTracker handles dates and times everywhere else.

## Permissions

Changing a schedule's timezone needs `schedule.manage` – Owner and Admin by
default. Changing the workspace timezone needs `workspace.updateSettings`.

## Common questions

<AccordionGroup>
  <Accordion title="I changed the workspace timezone and nothing moved. Why?">
    Because working hours live on the schedule. Change the timezone on the
    schedule the person is assigned to.
  </Accordion>

  <Accordion title="Can one person have a personal timezone?">
    Not directly. Give them their own schedule with the right timezone and assign
    it to them. That is the personal timezone.
  </Accordion>

  <Accordion title="Do I need one schedule per country?">
    One schedule per combination of hours and timezone. Five people in Lisbon on
    the same hours share one schedule.
  </Accordion>

  <Accordion title="What happens to a shift that crosses midnight?">
    A period whose end is at or before its start runs into the next day and is
    marked **Ends next day**. It is read in the schedule's timezone like every
    other period.
  </Accordion>

  <Accordion title="Does the timezone change how time entries are recorded?">
    No. Time entries are recorded as real instants. The schedule timezone only
    decides what was expected.
  </Accordion>
</AccordionGroup>

## Troubleshooting

| Problem                                        | What to check                                                                          |
| ---------------------------------------------- | -------------------------------------------------------------------------------------- |
| Someone's expected hours land on the wrong day | The schedule's timezone. A zone many hours away can shift the day boundary.            |
| Everyone abroad shows a shortfall              | They are still on the workspace-default schedule. Give them one in their own timezone. |
| The timezone list does not have my city        | Pick the nearest IANA zone with the same rules, such as `Europe/Lisbon` for Portugal.  |
| Hours changed after a clock change             | They should not. Check whether someone edited the schedule instead.                    |

## Related guides

<CardGroup cols={2}>
  <Card title="Create a schedule" href="/schedules/create-a-schedule">
    Where the timezone field lives.
  </Card>

  <Card title="Assign a schedule" href="/schedules/assign-a-schedule">
    Give one person a schedule in their own zone.
  </Card>

  <Card title="Dates, times and timezones" href="/concepts/dates-times-and-timezones">
    How TimeTracker handles time everywhere else.
  </Card>

  <Card title="Working hours and days off" href="/schedules/working-hours-and-days-off">
    Per-day hours and overnight periods.
  </Card>

  <Card title="Workspace settings" href="/settings/general">
    Set the workspace timezone and week start.
  </Card>
</CardGroup>
