Projects
create-deadline-tool
Create a deadline under a budget.
Creates a deadline on the given budget. The status defaults to new unless explicitly set; setting it to finished also flips is_finished automatically via the model hook.
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
budget_id | integer | yes | Parent budget id. |
deadline | string (Y-m-d) | yes | Due date. |
minutes | integer | yes | Estimated effort in minutes, ≥0. |
description | string | yes | Short description (max 255). |
comment | string | null | no | Longer comment. |
user_id | integer | null | no | Assignee user id. Leave empty for an unassigned deadline. |
team_id | integer | null | no | Team id. |
status | string | no | One of on-hold, new, active, internal-test, external-test, finished. Defaults to new. |
is_finished | boolean | no | Defaults to false. Auto-synced with status. |
is_billable | boolean | no | Defaults to true. |
Permissions
- Assigning to yourself:
kanban::manage_self. - Leaving unassigned or assigning to another user:
kanban::manage_for_others. - The caller must also pass the project policy's
viewgate for the budget's project.
Example
{
"budget_id": 31,
"deadline": "2026-06-01",
"minutes": 480,
"description": "Wireframe review",
"user_id": 4
}Response
The created deadline, in the same shape as a row from list-deadlines-tool.
Errors
- A missing required field returns a validation error.
- An invalid
statusvalue returns a validation error. - A non-existent
budget_id,user_idorteam_idreturns a validation error. - Missing project view access,
kanban::manage_selforkanban::manage_for_othersreturns an authorization error.