proj - will return all projects
chck - will return all checklists
task - will return all tasks (not checklists or projects)
subtasks - will return all sub-tasks
alltasks - will flatted the task list and show all projects, checklists as well as their sub-tasks at the same level
emptyproj - will show empty projects, as well as those that have no active sub-tasks
emptychck - will show empty checklists, as well as those that have no active sub-tasks
hiprio - will show all high-priority tasks
medprio - will show all medium-priority tasks
lowprio - will show all low-priority tasks
starred - will show all starred tasks
alarms - will show all tasks with alarms
anytag - will show tasks with at least one tag
notag - will show tasks without tags
anylocation - will show tasks with at least one location
nolocation - will show tasks without locations
repeat - will show all recurring tasks
duration - will show all tasks with a duration set
inprogress - will show all tasks currently in progress (i.e. those with start dates that are now in the past, or tasks with durations that have caused the due dates to shift to a time in the past)
paused - will show all tasks that have been assigned a paused tag
scheduled - will show all tasks that have a future start date
due - will show all tasks with a due date set
nodue - will show all tasks without a due date set
overdue - will show all overdue tasks
tasksoverdue - will show all overdue tasks, but excluding those whose lists have been excluded from showing under All
duetoday - will show all tasks with a due date of today
duetomorrow - will show all tasks with a due date of tomorrow
duethisweek - will show all tasks with a due date of this week
start - will show all tasks with a start date set
nostart - will show all tasks without a start date set
starttoday - will show all tasks with a start date of today
starttomorrow - will show all tasks with a start date of tomorrow
startthisweek - will show all tasks with a start date of this week
anytoday - will show all tasks that either have a start date of today or a due due of today
anytomorrow - will show all tasks that either have a start date of tomorrow or a due due of tomorrow
anythisweek - will show all tasks that either starts this week or is due this week
donetoday - will show all tasks that were completed today
doneyesterday - will show all tasks that were completed yesterday
donethisweek - will show all tasks that were completed this week
Here are some examples of the above types in use:
type: !hiprio
Show all tasks that do not have a high priority set
type: (today OR tomorrow) AND !lowprio
Notice how you can group these presets using brackets as well. Here, we want to either see all tasks that are due today OR tomorrow, but also those that are not of low priority.
type: emptyproj AND !paused
Searching for all projects with no active tasks, excluding those that have been explicitly paused.
type: (overdue AND hiprio) OR starred
Look for all those neglected tasks that are now overdue and had a high-priority set
type: ((today OR overdue OR inprogress) AND (medprio OR hiprio OR starred)) AND !paused
Find those important tasks you need to get done today, or ones that are either in progress or have been overdue.
As you can see, you can come up with any combination you like! There's no way to ever perform a brain dump and not be able to find those tasks again.
TIP: Given 2Do allows you to apply a date range filter in addition to the built-in search filters, the date range will in fact implicitly be added with a logical AND operation. So, for example, if you wanted to search for all tasks that are in progress OR any task due in the next three days, you would do this:
type: inprogress OR {datefilter}
The special {datefilter} keyword can be used as a placeholder to instruct 2Do to use a logical OR operation instead.
Caveat: When using {datefilter}, this must always be the last keyword in the search string, and should not be grouped inside a bracket or search will fail. This is currently a technical limitation. Here is another example demonstrating this:
cat group: home type: (duetomorrow OR duetoday) OR {datefilter}
Here, the search will be divided into two parts. The {datefilter} will take precedence over the left hand side and will be logically ORed with the rest of the search terms. This is an important caveat to bear in mind.
Using tags:
Simply append a list of tags you wish to filter on, either singly or combining them with AND, OR and the use of brackets. Here are some examples:
tags: (home OR play) AND !shop
Find all tasks that have tags home OR play, but not the ones that include the tag shop.
tags: (steve OR paul) AND client
Find all tasks tagged with the tag client, but also ones that have tags steve OR paul
tags: ?
All tasks that have any tag
tags: ~
All tasks that have no tag set.
tags: ~ OR later
All tasks that either do NOT have a tag set OR ones that have the tag later
tags: ~ OR !call
All tasks that either do NOT have a tag set OR ones that do not have the tag call
Using locations:
Just as you would use the "tags:" built-in type, locations can be searched for in the same manner:
locations: home OR work
Find all tasks that have locations home OR work
locations: ?
All tasks that have any location
locations: ~
All tasks that have no location set.
Combining Built-in types
Built-in search types described above can all be combined in one go, however currently combining these search types will implicitly assume a logical AND between the two. For example:
john type: duetomorrow groups: work tags: urgent
That's a mouthful, but let's break this up into four separate chunks:
1. john
Any search term that isn't a built-in type needs to appear at the beginning. This is simply a keyword that we want the search to be based on. Any task that has the word john should come up.
2. type: duetomorrow
2Do will first apply a filter for the keyword john, and then it will apply a sub-filter of type: tomorrow, thereby showing only tasks that are due tomorrow. Thus, 2Do is implicitly adding an 'AND' for you between 'john' and 'type:'. This behavior cannot be changed.
3. groups: work
Next, a second sub-filter will apply, where only those tasks that belong to the List Group work will be shown.
4. tags: urgent
A final 'tags' filter will apply on the retrieved sub-set, where only tasks that have been tagged urgent will be displayed.
You can create as many combinations as you wish, however please be aware that you cannot group these search-types with a bracket, as you can when working with actual built-in presets. Some more examples:
type: overdue tags: shop AND !work
All tasks that are now overdue, but have a tag shop, but not related to work
groups: sports type: hiprio tags: ~
All high priority tasks that belong to the List Group Sports but only those that do not have a tag set
groups: sports type: hiprio created: < 1w
All high priority tasks that belong to the List Group Sports but only those that were created within the last 7 days
Soundex
The Soundex Search capability of 2Do is perhaps the most understated, probably because no other application offers anything like it.
When taking notes, synchronizing tasks from an external source, or adding quick ToDos, one doesn't always remember how one spelled a particular name, a place or the not-so-obvious spelling mistakes one made. That should be the least of one's worries.
Thankfully with Soundex (which is ON by default and can be switched OFF) you don't need to worry about all this when searching through your tasks. Soundex matches on similar sounding words (thus the name), which is what you want when looking through ToDos and their associated Notes, Tags etc.