Update a time record

Update an existing time record by its ID. Only the fields included in the request body are changed; omitted fields are left untouched. You can change the times, type, associated customer/project, notes, locations, and coordinates. To clear an optional field such as the customer, project, a note, or coordinates, send it explicitly as null. When updating times, the resulting end must be after the resulting start, and the resulting interval must not overlap any other time record for the employee (rejected with 409, a code, and a conflicts list). To make the edited record win over the conflicting records instead, send intent: "overwrite" — records the new span fully covers are deleted, partially overlapped neighbors are trimmed, and a containing record is split around it. When neighbors are reshaped, the 200 response includes optional policy: "normalize", affected_record_ids, and deleted_record_ids (omitted on a plain accept). Per-record webhooks are emitted for every affected record, neighbors first and the edited record last. Collisions with an active (open) record reject with 409 TIMELINE_OVERWRITE_OPEN_RECORD even with the intent set. The record keeps its time_record_id: updates are applied in place. Any customer or project must belong to the company associated with your API key. The record must belong to your company. Live clock-in rules such as geofencing are not applied to manual updates.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
integer
required

Unique time record identifier

Body Params

Fields to update on an existing time record. All fields are optional; only the fields you include are changed. Nullable fields (customer_id, project_id, note, end_note, end_location, start_coordinates, end_coordinates) can be cleared by sending null.

string
enum

Type of time record

Allowed:
date-time

New clock-in timestamp. The resulting end must be after the resulting start.

date-time

New clock-out timestamp. Must be after the resulting start.

string | null

Clock-in note. Send null to clear.

string | null

Clock-out note. Send null to clear.

integer | null
≥ 1

Customer/job to associate with this record. Send null to remove the association.

integer | null
≥ 1

Project to associate with this record. Send null to remove the association.

string
length ≤ 500

Human-readable label for the clock-in location.

string | null

Human-readable label for the clock-out location. Send null to clear.

string | null

GPS coordinates at clock-in as latitude,longitude. Send null to clear.

string | null

GPS coordinates at clock-out as latitude,longitude. Send null to clear.

string
enum

Optional. When set to "overwrite", the edited record's new span wins over conflicting closed records: records it fully covers are deleted, partially overlapped neighbors are trimmed, and a record that fully contains it is split around it. Collisions with an active (open) record reject with 409 TIMELINE_OVERWRITE_OPEN_RECORD. Omit for the default reject-on-overlap behavior.

Allowed:
Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json