---
title: "Retrieve a branch timetable"
method: GET
path: "/api/business/{businessId}/branch/{branchId}/worktimetable"
tags: ["Branch WorkTimeTable"]
---

# Retrieve a branch timetable

`GET /api/business/{businessId}/branch/{branchId}/worktimetable`

## Request

- Base URL: `http://api-gateway-eu.phorest.com/third-party-api-server`
- URL: `http://api-gateway-eu.phorest.com/third-party-api-server/api/business/{businessId}/branch/{branchId}/worktimetable`
- Auth: HTTP basic
- TypeScript: <https://skmtc.dev/phorest/apis/third-party-api/docs/api/business/:businessId/branch/:branchId/worktimetable/get.ts> (a function with typed inputs; its response is checked against the schema)

Get a branch timetable for the specified business id and branch id, with a maximum one month date range. Start and end date must be provided

## Path parameters

- `businessId` string, required
- `branchId` string, required

## Query parameters

- `from_date` string, date, required
- `to_date` string, date, required
- `activity_type` string

## Response `200`

Specified timetable retrieved

- WorkTimeTable
  - `staffId` string
  - `branchId` string
  - `timeSlots` WorkTimeSlot[]
    - `date` string, date
    - `startTime` LocalTime
      - `millisOfSecond` integer
      - `millisOfDay` integer
      - `secondOfMinute` integer
      - `minuteOfHour` integer
      - `hourOfDay` integer
      - `chronology` Chronology
        - `zone` DateTimeZone
          - `id` string
          - `fixed` boolean
      - `fieldTypes` DateTimeFieldType[]
        - `durationType` DurationFieldType
          - `name` string
        - `rangeDurationType` DurationFieldType
          - `name` string
        - `name` string
      - `values` integer[]
      - `fields` DateTimeField[]
        - `rangeDurationField` DurationField
          - `unitMillis` integer
          - `precise` boolean
          - `name` string
          - `supported` boolean
          - `type` DurationFieldType
            - `name` string
        - `durationField` DurationField
          - `unitMillis` integer
          - `precise` boolean
          - `name` string
          - `supported` boolean
          - `type` DurationFieldType
            - `name` string
        - `leapDurationField` DurationField
          - `unitMillis` integer
          - `precise` boolean
          - `name` string
          - `supported` boolean
          - `type` DurationFieldType
            - `name` string
        - `minimumValue` integer
        - `maximumValue` integer
        - `name` string
        - `supported` boolean
        - `type` DateTimeFieldType
          - `durationType` DurationFieldType
            - `name` string
          - `rangeDurationType` DurationFieldType
            - `name` string
          - `name` string
        - `lenient` boolean
    - `endTime` LocalTime
      - `millisOfSecond` integer
      - `millisOfDay` integer
      - `secondOfMinute` integer
      - `minuteOfHour` integer
      - `hourOfDay` integer
      - `chronology` Chronology
        - `zone` DateTimeZone
          - `id` string
          - `fixed` boolean
      - `fieldTypes` DateTimeFieldType[]
        - `durationType` DurationFieldType
          - `name` string
        - `rangeDurationType` DurationFieldType
          - `name` string
        - `name` string
      - `values` integer[]
      - `fields` DateTimeField[]
        - `rangeDurationField` DurationField
          - `unitMillis` integer
          - `precise` boolean
          - `name` string
          - `supported` boolean
          - `type` DurationFieldType
            - `name` string
        - `durationField` DurationField
          - `unitMillis` integer
          - `precise` boolean
          - `name` string
          - `supported` boolean
          - `type` DurationFieldType
            - `name` string
        - `leapDurationField` DurationField
          - `unitMillis` integer
          - `precise` boolean
          - `name` string
          - `supported` boolean
          - `type` DurationFieldType
            - `name` string
        - `minimumValue` integer
        - `maximumValue` integer
        - `name` string
        - `supported` boolean
        - `type` DateTimeFieldType
          - `durationType` DurationFieldType
            - `name` string
          - `rangeDurationType` DurationFieldType
            - `name` string
          - `name` string
        - `lenient` boolean
    - `timeOffStartTime` LocalTime
      - `millisOfSecond` integer
      - `millisOfDay` integer
      - `secondOfMinute` integer
      - `minuteOfHour` integer
      - `hourOfDay` integer
      - `chronology` Chronology
        - `zone` DateTimeZone
          - `id` string
          - `fixed` boolean
      - `fieldTypes` DateTimeFieldType[]
        - `durationType` DurationFieldType
          - `name` string
        - `rangeDurationType` DurationFieldType
          - `name` string
        - `name` string
      - `values` integer[]
      - `fields` DateTimeField[]
        - `rangeDurationField` DurationField
          - `unitMillis` integer
          - `precise` boolean
          - `name` string
          - `supported` boolean
          - `type` DurationFieldType
            - `name` string
        - `durationField` DurationField
          - `unitMillis` integer
          - `precise` boolean
          - `name` string
          - `supported` boolean
          - `type` DurationFieldType
            - `name` string
        - `leapDurationField` DurationField
          - `unitMillis` integer
          - `precise` boolean
          - `name` string
          - `supported` boolean
          - `type` DurationFieldType
            - `name` string
        - `minimumValue` integer
        - `maximumValue` integer
        - `name` string
        - `supported` boolean
        - `type` DateTimeFieldType
          - `durationType` DurationFieldType
            - `name` string
          - `rangeDurationType` DurationFieldType
            - `name` string
          - `name` string
        - `lenient` boolean
    - `timeOffEndTime` LocalTime
      - `millisOfSecond` integer
      - `millisOfDay` integer
      - `secondOfMinute` integer
      - `minuteOfHour` integer
      - `hourOfDay` integer
      - `chronology` Chronology
        - `zone` DateTimeZone
          - `id` string
          - `fixed` boolean
      - `fieldTypes` DateTimeFieldType[]
        - `durationType` DurationFieldType
          - `name` string
        - `rangeDurationType` DurationFieldType
          - `name` string
        - `name` string
      - `values` integer[]
      - `fields` DateTimeField[]
        - `rangeDurationField` DurationField
          - `unitMillis` integer
          - `precise` boolean
          - `name` string
          - `supported` boolean
          - `type` DurationFieldType
            - `name` string
        - `durationField` DurationField
          - `unitMillis` integer
          - `precise` boolean
          - `name` string
          - `supported` boolean
          - `type` DurationFieldType
            - `name` string
        - `leapDurationField` DurationField
          - `unitMillis` integer
          - `precise` boolean
          - `name` string
          - `supported` boolean
          - `type` DurationFieldType
            - `name` string
        - `minimumValue` integer
        - `maximumValue` integer
        - `name` string
        - `supported` boolean
        - `type` DateTimeFieldType
          - `durationType` DurationFieldType
            - `name` string
          - `rangeDurationType` DurationFieldType
            - `name` string
          - `name` string
        - `lenient` boolean
    - `type` 'WORKING' | 'NON_WORKING' | 'NOT_SPECIFIED'
    - `custom` string
    - `branchId` string
    - `workActivityId` string
    - `timeOffPolicyId` string: Id of the time off policy this time off was rostered against. See the time off policy endpoints. Null when no time off policy was selected

## Other responses

- `400`: Bad Request
- `404`: Business or branch with the specified ids don't exist
- `429`: Request rate limit exceeded. Current limit set to 100 rps.
- `500`: Internal Server Error

## Changes

- **2026-11-03** `beea6ef29634`: 1 info
  - added the optional property `timeSlots/items/timeOffPolicyId` to the response with the `200` status

[Operation history](https://skmtc.dev/phorest/apis/third-party-api/changes/api/business/:businessId/branch/:branchId/worktimetable/get.md)

---

[API](https://skmtc.dev/phorest/apis/third-party-api.md) - [All operations](https://skmtc.dev/phorest/apis/third-party-api/llms.txt) - [OpenAPI document](https://skmtc.dev/phorest/apis/third-party-api/revisions/beea6ef29634?raw)
