Dataview: Filtering out TASKS without a property set (i.e. null values)

What I’m trying to do

Filter out tasks where a property is not set i.e. due != null.

I’m setting (due::[[2026-03-23]]) on inline tasks, but no matter what I do with the TASK query I cannot remove the tasks which don’t have a value set.

Things I have tried

I’ve tried all and many combinations of the following as well as force reloading Obsidian.

```dataview
TASK
WHERE typeof(date(due)) = "date"
WHERE due
WHERE due != null
WHERE due != ""
WHERE default(due, "nodate") != "nodate"
WHERE date(due) = date("2026-03-23")
WHERE ! completed
```

use !due

thanks I tried that too - I see the typo now :slight_smile: - and it also didn’t work

in the meantime for those who are interested I tried out dataviewjs with the help of AI and this works like a charm:

// Get the current file’s name (e.g. “2026-03-23”) to use as our filter value
const currentFileName = dv.current().file.name;

// Get all tasks from every page in the vault
const tasks = dv.pages().file.tasks
// Keep only tasks that are not yet completed
.where(t => !t.completed)
// Keep only tasks where the due field is a link to the current file
.where(t => {
// If the task has no due field at all, exclude it
if (!t.due) return false;
// Strip folder path and .md extension, then compare to current file name
return t.due.path.replace(/\.md$/, “”).split(“/”).pop() === currentFileName;
});

// Render the filtered tasks as an interactive checklist, ungrouped (false = don’t group by file)
dv.taskList(tasks, false);

I believe the other issue was you were using a link for due date instead of a date

date(due) should have that covered according to the docs: