My work
log-time-tool
Create a new time entry for the authenticated user.
Creates a worklog and returns it in the same shape as list-worklogs-tool. Server-side permission gates apply: overtime requires times::write_overtime and is silently coerced to false otherwise; logging against another user's deadline requires times::write_on_others_deadlines and otherwise returns an authorization error.
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
date | string (Y-m-d) | yes | Date the work happened. |
minutes | integer | yes | Duration in minutes (1–1440). |
description | string | yes | What was done. Up to 5000 characters. |
project_id | integer | yes | Project the time belongs to. |
deadline_id | integer | no | Optional deadline within the project. Must belong to the same project. |
work_item_id | integer | no | Optional work-item association. |
is_overtime | boolean | no | Defaults to false. Silently dropped if the user lacks times::write_overtime. |
is_not_billable | boolean | no | When omitted, inferred from the deadline's is_billable flag (or false when no deadline is set). |
reason | string | no | Required when the time entry exceeds the budget; informational otherwise. |
Permissions
- Logging time: always allowed.
is_overtime: true: requirestimes::write_overtime. Without it the value is silently set tofalseand the response reflects that.- Setting
deadline_idto a deadline owned by another user: requirestimes::write_on_others_deadlines.
Example
{
"date": "2026-05-18",
"minutes": 90,
"description": "Refactor payment gateway",
"project_id": 7
}Response
The created worklog, in the same shape as a row from list-worklogs-tool.
Errors
- Missing required fields (
date,minutes,description,project_id) return validation errors. - Setting a
deadline_idthat doesn't belong to the givenproject_idreturns a 404-style error. - Setting
deadline_idto another user's deadline withouttimes::write_on_others_deadlinesreturns an authorization error.