get_tasks
Retrieve tasks from OmniFocus with flexible filtering by status, tags, dates, and search, including support for recurring tasks and inherited properties.
Instructions
Get tasks with optional filtering.
Parameters:
task_id, parent_task_id, project_id: str
query: str -- search name/note
flagged_only, available_only, overdue, dropped_only, blocked_only, next_only, inbox_only: bool
include_completed: bool
include_full_notes: bool
tag_filter: list[str]; tag_filter_mode: str -- "and" (default), "or", "not"
due_after, due_before, due_on: str -- ISO date filters for due date
defer_after, defer_before, defer_on: str -- ISO date filters for defer date
planned_after, planned_before, planned_on: str
completion_after, completion_before, completion_on: str -- requires include_completed
dropped_after, dropped_before, dropped_on: str -- requires dropped_only or include_completed
modified_after, modified_before, modified_on, created_after, created_before, created_on: str
max_estimated_minutes: int -- quick wins filter
has_estimate: bool
recurring_only: bool
sort_by: str -- "name", "due_date", "defer_date", "planned_date", "creation_date", "modification_date", "completion_date", "dropped_date"; sort_order: str
Returns: id, name, projectName, completed, dropped, blocked, available, next, flagged, dueDate, deferDate, plannedDate, estimatedMinutes, tags, note, parentTaskId, subtaskCount, sequential, isRecurring, recurrence, repetitionMethod, repeatSummary, nextDueDate, nextDeferDate, nextPlannedDate, catchUpAutomatically, creationDate, modificationDate, completionDate, droppedDate.
Key fields:
available -- true when actionable (accounts for inherited status from containers)
repeatSummary -- human-readable recurrence; always use this for display, don't parse RRULE
repetitionMethod -- "fixed" (original schedule), "start_after_completion" (defer shifts), "due_after_completion" (due shifts)
catchUpAutomatically -- recurring only; true = one catch-up occurrence, false = each missed interval spawns its own
Date fields are effective (include inherited from project). Next-occurrence fields populated only for recurring tasks.
Tasks inherit tags from their parent project. A task showing a tag it wasn't explicitly assigned has inherited it -- this is expected, not a bug.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | No | ||
| parent_task_id | No | ||
| include_full_notes | No | ||
| project_id | No | ||
| flagged_only | No | ||
| include_completed | No | ||
| available_only | No | ||
| overdue | No | ||
| dropped_only | No | ||
| blocked_only | No | ||
| next_only | No | ||
| tag_filter | No | ||
| query | No | ||
| inbox_only | No | ||
| sort_by | No | ||
| sort_order | No | asc | |
| modified_after | No | ||
| modified_before | No | ||
| created_after | No | ||
| created_before | No | ||
| max_estimated_minutes | No | ||
| has_estimate | No | ||
| recurring_only | No | ||
| tag_filter_mode | No | and | |
| planned_after | No | ||
| planned_before | No | ||
| planned_on | No | ||
| due_after | No | ||
| due_before | No | ||
| due_on | No | ||
| defer_after | No | ||
| defer_before | No | ||
| defer_on | No | ||
| completion_after | No | ||
| completion_before | No | ||
| completion_on | No | ||
| dropped_after | No | ||
| dropped_before | No | ||
| dropped_on | No | ||
| created_on | No | ||
| modified_on | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |