Tasks
Tasks are the core of todoless: dates, labels, assignees, flags, comments, subtasks, recurring rules, sprint and project links.
Create a task
Use the custom endpoint (recommended for integrations):
curl -X POST http://YOUR_TODOLESS_HOST:7070/api/tasks \
-H "Authorization: Bearer YOUR_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title": "Buy milk",
"status": "todo",
"description": "Semi-skimmed",
"priority": 2,
"labels": ["l0abc1"],
"due_date": "2026-10-01",
"assigned_to": "u0abc123",
"flag": false
}'
| Field | Type | Notes |
|---|---|---|
| title | string (required) | Task title |
| status | string | todo / doing / done |
| description | string | Free text |
| priority | number | Priority level |
| labels | array of label ids | Validated against family and visibility rules |
| assigned_to | user id | Assignee |
| due_date | date | ISO date |
| horizon | string | Planning horizon |
| flag | boolean | Flagged for attention |
| archived | boolean | Archive flag |
| subtasks | array | Optional subtasks created with the task |
Add a subtask
curl -X POST http://YOUR_TODOLESS_HOST:7070/api/tasks/TASK_ID/subtasks \
-H "Authorization: Bearer YOUR_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title": "Check labels"}'
Update a task
PATCH /api/tasks/{taskId} updates owner tasks only. Setting status to ‘done’ stamps completed_at:
curl -X PATCH http://YOUR_TODOLESS_HOST:7070/api/tasks/TASK_ID \
-H "Authorization: Bearer YOUR_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{"status": "done"}'
Task collection
For full control (filters, sorting, bulk listing) use the tasks collection:
# List family tasks
curl "http://YOUR_TODOLESS_HOST:7070/api/collections/tasks/records?perPage=50" \
-H "Authorization: Bearer YOUR_SESSION_TOKEN"
# Create via the collection
curl -X POST http://YOUR_TODOLESS_HOST:7070/api/collections/tasks/records \
-H "Authorization: Bearer YOUR_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title": "Collect dry cleaning"}'