---
title: "/time-tracking/employees/:id/time-entries"
method: POST
path: "/time-tracking/employees/{key}/time-entries"
---

# /time-tracking/employees/:id/time-entries

`POST /time-tracking/employees/{key}/time-entries`

Creates a single time entry for the specified employee. Supports five clock modes. Supports both user and account tokens. Required scope: `w_time_tracking`.

## Path parameters

- `key` string, required

## Request body

- object
  - `type` string, required — Entry type. One of: `time-entry`, `clock-in`, `clock-out`, `ergani-clock-in`, `ergani-clock-out`
  - `clock_in_time` string — ISO 8601 clock-in timestamp with timezone designator (UTC `Z` or numeric offset). Stored in UTC. Seconds and milliseconds are truncated to the start of the minute. Required for `time-entry` and `clock-in` types.
  - `clock_out_time` string — ISO 8601 clock-out timestamp with timezone designator (UTC `Z` or numeric offset). Stored in UTC. Seconds and milliseconds are truncated to the start of the minute. Required for `time-entry` and `clock-out` types.
  - `note` string — Optional note. Supported by `time-entry`, `clock-out`, `ergani-clock-out` types.
  - `override_overlapping` boolean — When true, archives any overlapping time entries.

## Response `200`

200. Response shape depends on `type`: `time-entry` returns the created entry; `clock-in` / `ergani-clock-in` return a single object with `clock_in_time` and `subsequent_clock_in_times`; `clock-out` / `ergani-clock-out` return a JSON array of the entries closed by the clock-out. All times are in UTC (with `Z` suffix); responses include a `timezone` field with the IANA timezone resolved for the timesheet.

- union
  - object — Response for `type: time-entry`
    - `type` string
    - `uuid` string
    - `clock_in_time` string — Clock-in time in UTC (with `Z` suffix)
    - `clock_out_time` string — Clock-out time in UTC (with `Z` suffix)
    - `note` string, nullable
    - `timezone` string — IANA timezone resolved for the timesheet
  - object — Response for `type: clock-in` / `ergani-clock-in`
    - `type` string
    - `uuid` string
    - `clock_in_time` string — Clock-in time in UTC (with `Z` suffix)
    - `subsequent_clock_in_times` string[] — Clock-in timestamps (UTC) that were aggregated into this active clock
    - `timezone` string — IANA timezone resolved for the timesheet
  - object[] — Response for `type: clock-out` / `ergani-clock-out` — array of closed entries
    - `type` string
    - `uuid` string
    - `clock_in_time` string — Clock-in time of the closed entry in UTC (with `Z` suffix)
    - `clock_out_time` string — Clock-out time in UTC (with `Z` suffix)
    - `worked_hours` integer
    - `worked_minutes` integer — Remaining minutes (0–59) after `worked_hours`
    - `note` string, nullable
    - `timezone` string — IANA timezone resolved for the timesheet

## Other responses

- `400` — 400
- `403` — 403
- `404` — 404
- `409` — 409
- `422` — 422
- `500` — 500

---

[API](https://skmtc.net/workable/apis/root.md) · [All operations](https://skmtc.net/workable/apis/root/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/workable/root/versions/c4116349c08d/schema)
