Create one completed historical time record for an employee in your company. This endpoint is intended for manual or imported records, not live clock-in sessions. For live clock-in and clock-out workflows, use the clock-in and clock-out endpoints. The employee, customer, and project IDs must belong to the company associated with your API key. The API sets the clock-in and clock-out source automatically. The record must not overlap any existing time record for the employee: overlapping requests are rejected with 409 and a machine-readable code and conflicts list. To make this record win over the conflicting records instead, send intent: "overwrite" — records it fully covers are deleted, partially overlapped neighbors are trimmed, and a record that fully contains it is split around it (for example a break inside a work span). Per-record webhooks (time_record.updated / time_record.created / time_record.deleted) are emitted for every affected record, neighbors first and the new record last. Collisions with an active (open) record reject with 409 TIMELINE_OVERWRITE_OPEN_RECORD even with the intent set. Bare overlapping creates never auto-overwrite; only an explicit intent: "overwrite" reshapes neighbors. Because overwrite is destructive, only send it after surfacing the 409 conflicts list to a human or when your integration is the sole source of truth for this timeline; a blind retry loop with the intent set will re-trim records the first attempt already wrote.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
