+ Add Question

Complex query parsed incorrectly


I am trying to use the following query:
(overdue, 7 days, no due date) & !@personal
It does not work as expected - it shows a today's task tagged as 'personal'.

After some experiments, it looks like if there are two date specifiers, the query works fine. For example, the following queries work fine:
(7 days, no due date) & !@personal
(overdue, 7 days) & !@personal
but adding a third date specifier stops query from working.

Another interesting observation: the query (overdue, today, no due date) works, but when I change the order - (overdue, no due date, today) - the query throws a SyntaxError: unmatched ) in regular expression.

All responses

David Trey  staff
Replied on Aug 14, 2013 - 18:13 UTC


It's not advised to use comma separation as "OR" instead of | especially in queries with more than two variables.

In case of the query you want to perform, please try this:

(overdue | 7 days | no date) & !@personal

or a more advanced version:

(overdue & !@personal) | (7 days & !@personal) | (no date & !@personal)

Best regards,

Alex Ru
Replied on Aug 14, 2013 - 19:20 UTC

Thank you, David. It does work with ORs.

Just for you to know - the help page suggests commas: https://todoist.com/app?v=156#info_page/filters


David Trey  staff
Replied on Aug 14, 2013 - 20:08 UTC


I'm glad to hear that it works now :) regarding the help page - yes, it does for queries with just 2 variables. We'll consider making it clear that it's not good for more than 2.

Best regards,