The following was initially meant as bug report until I understood that it's actually some sort of feature ...
Consider the following todo list: -------------------- todos.org -------------------- * TODO relax * TODO do this :PROPERTIES: :patchday: 202302 :END: * TODO do that :PROPERTIES: :patchday: 202305 :END: * TODO work harder :PROPERTIES: :patchday: 202308 :END: -------------------- todos.org -------------------- When I use an agenda query patchday>=202305 on that I get the result: Headlines with TAGS match: patchday>=202305 Press ‘C-u r’ to search again todos: TODO do that todos: TODO work harder However for the following: patchday<=202305 I get Headlines with TAGS match: patchday<=202305 Press ‘C-u r’ to search again todos: TODO relax todos: TODO do this todos: TODO do that since the absent property "patchday" on the "relax" todo entry is defaulted to value zero, obviously. So I would like to have something easier to type (and remember! why not "!=" or "/="?) then patchday<>0&patchday<=202305 How about starred agenda property operators that match only if the operand property is actually present, which would result in this query: patchday<=*202305 Section <info:org#Matching tags and properties> does not seem to provide any information on "definedness" expressions for properties. Thanks.