Time Tracking
Public API

Update Hour Entry

Changed on

Partially updates a time tracking hour entry identified by its ID. Only the fields present in the body are changed; the rest retain their prior values. Moving the entry to a date in a different pay period updates the returned timesheetId.

OAuth Scopes: time_tracking:timesheets.write

patch/api/v1/time-tracking/hour-entries/{id}

Request

Path parameters

idinteger required

The hour entry ID.

Request body

datestring date

Calendar date the hours are attributed to. Must fall inside an existing pay period for the entry's employee.

hoursnumber float

Hours worked on this date. Must be greater than zero.

notestring nullable

Free-text note describing the work. Pass null to clear.

projectIdinteger nullable

Project the hours were logged against. Pass null to clear.

taskIdinteger nullable

Task within the project. Pass null to clear.

Example request

{
  "date": "2026-03-17",
  "hours": 8,
  "note": "Client meeting and development",
  "projectId": 19,
  "taskId": 47
}

Response

Hour entry updated successfully.

idinteger

Identifier for the hour entry.

employeeIdinteger

The employee who owns the entry.

timesheetIdinteger

The timesheet (pay period) this entry rolls up to.

datestring date

Calendar date the hours are attributed to.

hoursnumber float

Hours worked on this date for the given project/task.

notestring nullable

Free-text note describing the work.

projectIdinteger nullable

Project the hours were logged against.

taskIdinteger nullable

Task within the project.

createdAtstring date-time

When the entry was created.

updatedAtstring date-time

When the entry was last modified.

Example response

{
  "id": 67419,
  "employeeId": 384,
  "timesheetId": 1042,
  "date": "2026-03-17",
  "hours": 8,
  "note": "Client meeting and development",
  "projectId": 19,
  "taskId": 47,
  "createdAt": "2026-03-17T17:30:00Z",
  "updatedAt": "2026-03-17T17:30:00Z"
}

Changes