Interaktive Aufgabenansicht in Obsidian nach ausgewähltem Datum mit Meta Bind und DataviewJS
Meta Bind und DataviewJS ermöglichen die Erstellung einer Seite mit einem interaktiven Datumsauswahl-Widget zur Anzeige von Aufgaben. Im Lesemodus klicken Nutzer auf einen Kalender, wählen ein Datum – und die Liste aktualisiert sich automatisch. Diese Lösung nutzt YAML-Eigenschaften als Zwischenspeicher zwischen dem Eingabe-Widget und dem Ausgabe-Skript.
Dadurch entfällt das manuelle Bearbeiten von Tasks- oder Dataview-Abfragen, bei denen das Datum jedes Mal im Code geändert werden muss.
Einrichtung: Plugins installieren und YAML-Block erstellen
Installieren Sie die Plugins Meta Bind und Dataview über die Obsidian-Einstellungen. Aktivieren Sie in Dataview JavaScript-Abfragen.
Erstellen Sie eine Datei, z.B. DynamicTasks.md, mit einem YAML-Block:
---
selected-date: 2025-12-30
---
Der Anfangswert wird durch das Widget überschrieben.
Meta-Bind-Widget zur Datumsauswahl
Unterhalb des YAML-Blocks fügen Sie ein:
INPUT[datePicker: selected-date]
Im Lesemodus erscheint ein Kalender. Ein Klick öffnet einen Datumsauswähler, und der Wert wird in selected-date gespeichert.
DataviewJS-Skript: Filtern und Darstellen von Aufgaben
Nach dem Widget fügen Sie ein Skript zur Aufgabensuche hinzu:
const targetDate = dv.current().file.frontmatter["selected-date"];
const pages = dv.pages('"Work"')
.where(p => p.file.tasks
.where(t => !t.completed && t.due && t.due.toISODate() === targetDate)
.length > 0);
for (let page of pages) {
dv.el("div", dv.fileLink(page.file.path, false), {
attr: {
style: "display:inline-block; margin:8px 0 4px 0; padding:3px 8px; border-radius:6px; background:#e0f0ff; color:#0366d6; font-weight:500;"
}
});
dv.taskList(
page.file.tasks
.where(t => !t.completed && t.due && t.due.toISODate() === targetDate),
false
);
}
Skript-Erklärung
- Datum lesen:
dv.current().file.frontmatter["selected-date"]gibt einen StringYYYY-MM-DDzurück.
- Dateien durchsuchen:
dv.pages('"Work"')durchsucht den Ordner. Der Filter prüft auf unerledigte Aufgaben mitdueauftargetDatevia.toISODate().
- Darstellung: Für jede Datei – ein Badge-Link mit CSS-Stil und
dv.taskListohne Gruppierung (false). Ersetzen Sie"Work"durch Ihren Ordner.
Integration in ein Canvas-Dashboard
Ziehen Sie die Datei auf ein Canvas – Obsidian erstellt eine interaktive Karte. Passen Sie die Größe an. Arbeiten Sie direkt im Dashboard oder klicken Sie zur Navigation.
Voraussetzungen und Funktionen
- Tasks-Syntax: Verwenden Sie das Emoji
📅 YYYY-MM-DDfürdue. Reguläre Checkboxen ohne Datum werden ignoriert. - Aktualisierungen: DataviewJS startet mit einer Verzögerung von ~1 Sekunde nach Datumsänderung neu.
Wichtige Punkte
- Meta Binds interaktiver datePicker aktualisiert YAML ohne manuelle Bearbeitung.
- DataviewJS filtert Aufgaben nach exakter Übereinstimmung
due.toISODate() === targetDate. - Gruppierung nach Dateien mit individuellen Badges für UI-Kontrolle.
- Automatische Darstellung in Canvas ohne zusätzliche Plugins.
- Geeignet zur Überprüfung der Arbeitslast an zukünftigen Daten (Urlaub, Meetings).
Vorteile gegenüber statischen Abfragen
| Ansatz | Datum ändern | Lesemodus | Auto-Update |
|----------|---------------|--------------|-------------|
| Tasks due on DATE | Manuell im Code | Nein | Nein |
| Dataview due = date() | Manuell im Code | Nein | Nein |
| YAML + Meta Bind + DataviewJS | Klick-Kalender | Ja | Ja |
Die Lösung ist skalierbar: Fügen Sie Filter für Tags oder Status in .where() hinzu.
— Editorial Team
Noch keine Kommentare.