Skip to main content
Time entries are hours logged by a user against a project’s task. Unbilled entries are the raw material for invoices. For fields and response details, see the API reference.
--task-id is a task’s record ID. Get it from projects show, or see Getting the task ID.
Sample responses on this page show the JSON envelope (--json). Pretty output is the default on a terminal and its columns adapt to width. See Output formats.

time-entries list

List a project’s unbilled time entries. The result is paginated, so the command accepts --page and --page-size and reports a pagination object in the envelope with total_records, total_pages, current_page_number, and page_size. See Pagination.
Pass --task-id to narrow the result to one task, which is how you read the hours logged against a single task without filtering the whole project by hand. Task IDs come from projects show.

time-entries create

Log time against a task. --user-email is the organization user the hours belong to, which is not necessarily the signed-in user.
Pass --is-override to log against a date that autolock has already closed. Your role must permit overriding autolock.

time-entries update

Change an entry’s hours, notes, or date. Only the flags you pass are changed.

Required arguments

  • <time-entry-id> - the entry’s record ID. See Getting the time entry ID.
  • --user-email - the email of the user the entry belongs to.
An entry that has already been invoiced cannot be edited or deleted. Adjust the invoice instead.

time-entries delete

Delete a time entry.

Required arguments

  • <time-entry-id> - the entry’s record ID.
  • --user-email - the email of the user the entry belongs to.