Filter tasks
filter_tasksFilter OmniFocus tasks by status, dates, project, folder, tags, name, and estimate. Combine conditions with and/or/not, count matches, or page through results.
Instructions
Advanced task filtering: status, dates (due/defer/planned/completed/added/modified/dropped), project, folder tree, tags, name/regex, note, repeat, estimate — plus and/or/not clauses, countOnly, field projection, and offset paging.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| or | No | At least one condition must be true | |
| and | No | Every condition must be true | |
| not | No | The condition must be false | |
| limit | No | Maximum number of tasks to return (default: 100). Applied after all filters and sorting; the output notes when results were capped | |
| fields | No | Optional detail components to render ('project' = per-project headings). Id and name always render; omit for all | |
| offset | No | Skip this many matches (default: 0). Applied after the sort, so paging never repeats or skips a task | |
| sortBy | No | Sort results by field | |
| flagged | No | Filter by flagged status | |
| hasNote | No | true = only tasks with a non-empty note; false = only tasks without one | |
| overdue | No | Show overdue tasks only | |
| dateMode | No | Date predicates use dates set directly on tasks, or effective dates inherited from parents/projects. Default: direct. | |
| dueAfter | No | Show tasks due after this date. Bare YYYY-MM-DD is safe: it means local midnight that day. Full ISO 8601 (e.g., 2026-03-05T09:00:00-06:00) also accepted | |
| dueToday | No | Show tasks due today | |
| folderId | No | Same as folderName, by id. An id matching nothing is an error; never falls back to name | |
| countOnly | No | Return only the number of matches. Far cheaper — no task details are read | |
| dueBefore | No | Show tasks due before this date. Bare YYYY-MM-DD is safe: it means local midnight that day. Full ISO 8601 (e.g., 2026-03-05T09:00:00-06:00) also accepted | |
| sortOrder | No | Sort order (default: asc) | |
| tagFilter | No | Filter by tag name(s). Can be single tag or array of tags | |
| addedAfter | No | Show tasks created after this date | |
| deferAfter | No | Show tasks with defer date after this date. Bare YYYY-MM-DD is safe: it means local midnight that day | |
| deferToday | No | Show tasks deferred to today | |
| folderName | No | Only tasks whose project is in this folder or any folder nested inside it. Inbox tasks never match | |
| searchText | No | Search in task names and notes | |
| taskStatus | No | Filter by task status. Can specify multiple statuses | |
| addedBefore | No | Show tasks created before this date | |
| deferBefore | No | Show tasks with defer date before this date. Bare YYYY-MM-DD is safe: it means local midnight that day | |
| dueThisWeek | No | Show tasks due this week (Sunday through Saturday, local time) | |
| isRepeating | No | true = only repeating tasks; false = only non-repeating tasks | |
| nameMatches | No | Case-insensitive regex matched against the task name. Invalid patterns are rejected | |
| perspective | No | Limit search to specific perspective: inbox, flagged, all tasks | |
| droppedAfter | No | Show tasks dropped after this date (implies dropped tasks) | |
| dueThisMonth | No | Show tasks due this month | |
| nameContains | No | Case-insensitive substring match on the task name only | |
| plannedAfter | No | Show tasks planned after this date. Bare YYYY-MM-DD is safe: it means local midnight that day | |
| plannedToday | No | Show tasks planned for today | |
| tagMatchMode | No | Match any tag (OR, default) or all tags (AND) | |
| weekStartsOn | No | Start of every week predicate, including completedThisWeek. Default Sunday (changed from Monday for completions in 0.6). | |
| deferThisWeek | No | Show tasks deferred to this week (Sunday through Saturday, local time) | |
| droppedBefore | No | Show tasks dropped before this date (implies dropped tasks) | |
| exactTagMatch | No | Set to true for exact tag name match, false for partial (default: false) | |
| modifiedAfter | No | Show tasks last modified after this date | |
| plannedBefore | No | Show tasks planned before this date. Bare YYYY-MM-DD is safe: it means local midnight that day | |
| projectFilter | No | Filter by project name (partial match) | |
| completedAfter | No | Show tasks completed after this date. Bare YYYY-MM-DD is safe: it means local midnight that day | |
| completedToday | No | Show tasks completed today (since local midnight) | |
| deferAvailable | No | Show tasks whose defer date has passed (now available) | |
| modifiedBefore | No | Show tasks last modified before this date | |
| completedBefore | No | Show tasks completed before this date. Bare YYYY-MM-DD is safe: it means local midnight that day | |
| plannedThisWeek | No | Show tasks planned for this week (Sunday through Saturday, local time) | |
| estimatedMinutes | No | Estimate in minutes. All supplied comparators must hold; no estimate never matches | |
| plannedThisMonth | No | Show tasks planned for this month | |
| completedThisWeek | No | Show tasks completed since the start of this week at local midnight (default Sunday) | |
| completedThisMonth | No | Show tasks completed since the 1st of this month at local midnight | |
| completedYesterday | No | Show tasks completed yesterday (local midnight to local midnight) | |
| includeProjectRoots | No | Include project root tasks (default false). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | ||
| meta | No | ||
| tool | Yes | ||
| success | Yes |