---
title: "Update Time Off as Employee"
method: PATCH
path: "/v1/employee/timeoff/{id}"
tags: ["Employee Time Off"]
---

# Update Time Off as Employee

`PATCH /v1/employee/timeoff/{id}`

Updates a Time Off record as Employee

## Scopes

| Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|
| Manage timeoffs (`time_and_attendance`) | - | Manage timeoffs (`timeoff:write`) |

## Path parameters

- `id` string, required

## Request body

- UpdateEmployeeTimeoffParams — Update timeoff params
  - `document` TimeoffDocumentParams — Timeoff document params
    - `content` string, required — The binary content of the file encoded with base64
    - `name` string, required — The file name of the document
  - `edit_reason` string, required — The reason for the update. Required when updating the time off data but not changing the status.
  - `end_date` string, date — UTC date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format
  - `leave_policy_variant_id` string
  - `notes` string
  - `start_date` string, date — UTC date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format
  - `timeoff_days` TimeoffDaysParams[]
    - `day` string, date — UTC date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format
    - `hours` integer
  - `timezone` string — [TZ identifier](https://www.iana.org/time-zones)

## Response `200`

Success

- TimeoffResponse — Timeoff response
  - `data` object, required
    - `timeoff` Timeoff, required — A time off record for an employee, representing a period of leave (e.g., vacation, sick leave, parental leave).
      - `approved_at` string, date-time, nullable — The timestamp when the time off was approved. Null if not yet approved.
      - `approver_id` string, nullable — The field matches the `id` of a user in the Remote Platform that has permission to approve time off requests. [Available users][] can be found fetching the [List Company Manager][] endpoint. [Available users]: https://support.remote.com/hc/en-us/articles/360054668651-Approving-Declining-time-off-requests#h_01G0014GZKZ3EMN6P7C99HAK55 [List Company Manager]: https://gateway.remote.com/v1/docs/openapi.html#tag/Company-Managers
      - `automatic` boolean — Whether this time off was automatically created by the system (e.g., public holidays) rather than requested by the employee.
      - `cancel_reason` string, nullable — The reason provided when the time off was cancelled. Null if not cancelled.
      - `cancelled_at` string, datetime, nullable — Optional UTC date time in YYYY-MM-DDTHH:mm:ss format
      - `document` File — A file associated with an employment, such as a contract, tax form, or identity document.
        - `id` string, required — The unique identifier (UUID) of the file.
        - `inserted_at` string, date-time, required — UTC date time in [ISO 8601][] format. [ISO 8601]: https://en.wikipedia.org/wiki/ISO_8601
        - `name` string, required — The file name including extension (e.g., "id.pdf", "contract.pdf").
        - `sub_type` string, nullable — A more specific classification of the file within its type (e.g., "personal_id" within type "id", or "ir_35" within type "contract"). Null if no sub-type applies.
        - `type` string, required — The broad category of the file (e.g., "id", "contract", "tax_form").
      - `employment_id` string, required — The unique identifier (UUID) of the employment this time off belongs to.
      - `end_date` string, date, required — The last day of the time off period (ISO 8601 date).
      - `id` string, required — The unique identifier (UUID) of the time off record.
      - `leave_policy` LeavePolicy, required — The leave policy associated with a time off request. Policies define the rules and entitlements for specific types of leave.
        - `leave_policy_variant_slug` string, required — The unique identifier (slug) of the specific policy variant.
        - `leave_type` 'time_off' | 'sick_leave' | 'public_holiday' | 'unpaid_leave' | 'extended_leave' | 'in_lieu_time' | 'maternity_leave' | 'paternity_leave' | 'parental_leave' | 'bereavement' | 'military_leave' | 'other' | 'paid_time_off' | 'custom_company_leave' | 'rtt' | 'casual_leave' | 'rol' | 'ex_festivita', required
        - `name` string, required — The display name of the leave policy (e.g., "Self-Care", "Annual Leave").
      - `leave_policy_variant_id` string, uuid, nullable — UUID of the custom company leave policy variant associated with this time off. Null for standard leave types.
      - `notes` string, nullable — Optional notes provided by the employee when requesting the time off.
      - `start_date` string, date, required — The first day of the time off period (ISO 8601 date).
      - `status` 'requested' | 'approved' | 'cancelled' | 'declined' | 'taken' | 'cancel_requested', required — The current status of a time off request. - `requested`: The employee has submitted a time off request and it is awaiting approval. - `approved`: The time off request has been approved by a manager. - `cancelled`: The time off request was cancelled by the employee or an admin. - `declined`: The time off request was declined by a manager. - `taken`: The approved time off has been taken (the dates have passed). - `cancel_requested`: The employee has requested cancellation of a previously approved time off, pending manager approval.
      - `timeoff_days` TimeoffDay[], required — The individual days and hours within this time off period.
        - `day` string, date, required — UTC date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format
        - `hours` integer, required — The number of hours taken off on this day (e.g., 8 for a full day, 4 for a half day). For minute-precision durations (e.g., 7 hours 30 minutes), use `minutes`.
        - `minutes` integer, required — The number of minutes taken off on this day (e.g., 480 for a full 8-hour day, 450 for 7 hours 30 minutes). Minute-precision counterpart of `hours`.
      - `timeoff_type` 'time_off' | 'sick_leave' | 'public_holiday' | 'unpaid_leave' | 'extended_leave' | 'in_lieu_time' | 'maternity_leave' | 'paternity_leave' | 'parental_leave' | 'bereavement' | 'military_leave' | 'other' | 'paid_time_off' | 'custom_company_leave' | 'rtt' | 'casual_leave' | 'rol' | 'ex_festivita', required
      - `timezone` string, required — [TZ identifier](https://www.iana.org/time-zones)
      - `total_minutes` integer, required — The total number of minutes taken off across all `timeoff_days`. Always equals the sum of the per-day `minutes` values.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not Found
- `422` — Unprocessable Entity
- `429` — Unprocessable Entity

---

[API](https://skmtc.net/remote-com/apis/remote.md) · [All operations](https://skmtc.net/remote-com/apis/remote/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/remote-com/remote/revisions/7e6a0c61ac82/schema)
