---
title: "Update Office Hours"
method: PUT
path: "/settings/office-hours"
tags: ["office-hours"]
---

# Update Office Hours

`PUT /settings/office-hours`

## Request

- Base URL: `https://api-docs.upsmith.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api-docs.upsmith.com/settings/office-hours`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

## Headers

- `organization-id` string, nullable
- `x-user-id` string, nullable
- `timezone` string
- `x-actor-email` string, nullable
- `x-request-source` string, nullable
- `x-operation-id` string, nullable
- `x-commit-message` string, nullable
- `x-confirmation-id` string, nullable
- `x-chat-id` string, nullable

## Request body

- OfficeHoursUpdate
  - `hours` OfficeHours, required
    - `mon` OfficeInterval[], required
      - `start_minute` integer, required
      - `end_minute` integer, required
    - `tue` OfficeInterval[], required
      - `start_minute` integer, required
      - `end_minute` integer, required
    - `wed` OfficeInterval[], required
      - `start_minute` integer, required
      - `end_minute` integer, required
    - `thu` OfficeInterval[], required
      - `start_minute` integer, required
      - `end_minute` integer, required
    - `fri` OfficeInterval[], required
      - `start_minute` integer, required
      - `end_minute` integer, required
    - `sat` OfficeInterval[], required
      - `start_minute` integer, required
      - `end_minute` integer, required
    - `sun` OfficeInterval[], required
      - `start_minute` integer, required
      - `end_minute` integer, required
    - `breaks_open` boolean: On voice calls, a gap between a day's intervals counts as office hours, with no live team to transfer to.

## Response `200`

Successful Response

- OfficeHoursResponse: The org's office hours and what they mean right now, in the org's timezone. `hours` is None until the org sets them. `service_titan_hours` is offered for import only; it never stands in for unset hours.
  - `hours` OfficeHours, required
    - `mon` OfficeInterval[], required
      - `start_minute` integer, required
      - `end_minute` integer, required
    - `tue` OfficeInterval[], required
      - `start_minute` integer, required
      - `end_minute` integer, required
    - `wed` OfficeInterval[], required
      - `start_minute` integer, required
      - `end_minute` integer, required
    - `thu` OfficeInterval[], required
      - `start_minute` integer, required
      - `end_minute` integer, required
    - `fri` OfficeInterval[], required
      - `start_minute` integer, required
      - `end_minute` integer, required
    - `sat` OfficeInterval[], required
      - `start_minute` integer, required
      - `end_minute` integer, required
    - `sun` OfficeInterval[], required
      - `start_minute` integer, required
      - `end_minute` integer, required
    - `breaks_open` boolean: On voice calls, a gap between a day's intervals counts as office hours, with no live team to transfer to.
  - `timezone` string, required
  - `open_now` boolean, nullable, required
  - `closed_for_holiday` string, nullable, required
  - `jenny_text` string, nullable, required
  - `needs_review` boolean, required
  - `service_titan_hours` OfficeHours, required
    - `mon` OfficeInterval[], required
      - `start_minute` integer, required
      - `end_minute` integer, required
    - `tue` OfficeInterval[], required
      - `start_minute` integer, required
      - `end_minute` integer, required
    - `wed` OfficeInterval[], required
      - `start_minute` integer, required
      - `end_minute` integer, required
    - `thu` OfficeInterval[], required
      - `start_minute` integer, required
      - `end_minute` integer, required
    - `fri` OfficeInterval[], required
      - `start_minute` integer, required
      - `end_minute` integer, required
    - `sat` OfficeInterval[], required
      - `start_minute` integer, required
      - `end_minute` integer, required
    - `sun` OfficeInterval[], required
      - `start_minute` integer, required
      - `end_minute` integer, required
    - `breaks_open` boolean: On voice calls, a gap between a day's intervals counts as office hours, with no live team to transfer to.

## Other responses

- `422`: Validation Error

---

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