task_update_describe
Preview task edits before committing changes. Inspect planned modifications to verify accuracy, then apply the update. Read-only dry-run, no side effects.
Instructions
Preview what task_update would do without making any changes. Do NOT use to actually update a task — use task_update instead. Returns { description, plannedChanges } showing the fields that would be patched. No side effects: read-only by contract — never mutates OmniFocus. Example: dry-run companion — pass the same args you would to the write tool, inspect plannedChanges, then call the write tool once approved.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Persistent task ID. Get from task_list or search_query. | |
| name | No | New task name. Must be non-empty if supplied. | |
| note | No | Plain-text note. Pass null to clear. HTML round-trip available in M3. | |
| tagIds | No | Full-replacement tag list. Replaces all existing tags. Mutually exclusive with addTags/removeTags. | |
| addTags | No | Tags to add. No-op for tags the task already has. Mutually exclusive with tagIds. | |
| dry_run | No | When true, validates input, computes the patched task (pre-fetch merged with the supplied fields), and returns a preview envelope with meta.dryRun = true; no adapter call is made and no mutation occurs. | |
| dueDate | No | ISO-8601 due date with UTC offset. Pass null to clear. | |
| flagged | No | Flag or unflag the task. Alias: setFlagged. | |
| deferDate | No | ISO-8601 defer date with UTC offset. Pass null to clear. | |
| removeTags | No | Tags to remove. No-op for tags the task doesn't have. Mutually exclusive with tagIds. | |
| sequential | No | Whether subtasks must be completed in order. | |
| setFlagged | No | Convenience alias for flagged. Use when your intent is specifically to set or clear the flag without touching other fields. | |
| dueDateFloating | No | When true, the due time is floating (follows the user across time zones). | |
| idempotency_key | No | Idempotency key for retry-safe updates. Identical subsequent calls within the TTL window replay the original envelope with meta.idempotentReplay = true instead of re-applying the patch. | |
| estimatedMinutes | No | Estimated duration in minutes. Pass null to clear. | |
| deferDateFloating | No | When true, the defer time is floating (follows the user across time zones). | |
| expectedModifiedAt | No | Optimistic-concurrency guard: ISO-8601 timestamp from a recent task_get. If the task's current modifiedAt differs, the call fails with OF_CONFLICT and no update is performed. Omit to skip the check. | |
| completedByChildren | No | Whether the task completes when all children are complete. |