bulk_update_tasks
Apply the same partial update to many tasks at once. Pass taskIds (max 50) and any combination of: status (TODO/IN_PROGRESS/REVIEW/DONE/BLOCKED), priority (LOW/MEDIUM/HIGH/CRITICAL, a ranking label that does not put a task on the critical path), shiftDueDateDays (positive or negative integer to add to each task's dueDate). Per-task failures are reported in errors but do not abort the whole call. Permission: task.edit.any on each task's project. Each task is written with the rules and effects of update_task (a shifted due date is a typed date: the duration is recounted and the schedule reflows). PREFER bulk_update_status when the ONLY change is status. Instead of taskIds and one patch, items takes up to 50 tasks, each with its own startDate, dueDate, originalDurationMinutes, constraintType and constraintDate (any of them), each applied with exactly the rules and effects of update_task (a duration on a dated task moves its due date, a typed date derives its constraint, the schedule reflows), in the order given; a refused row is reported in errors with its code while the rest land. The monthly allowance counts tasks, not calls.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "bulk_update_tasks"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| items | No | Up to 50 tasks, each with its own schedule fields, in place of taskIds and the shared patch. Field meanings are update_task's. | |
| dryRun | No | Preview only: return the per-task diff (current vs proposed) + which tasks would be skipped, without committing. Writes nothing, fires no side effects. | |
| status | No | ||
| taskIds | No | Up to 50 task ids. | |
| priority | No | Priority label (LOW/MEDIUM/HIGH/CRITICAL) that people set to rank work. It is not the critical path: the schedule engine computes that from dependencies, durations and the calendar, and priority does not change it. | |
| shiftDueDateDays | No | Integer days to add to each task's dueDate. Negative = earlier. |