Obsidian tip: how to make today’s note automatically inherit yesterday’s unfinished tasks.

Code link: daily

00:00 Task management in the daily note 00:12 Auto-carrying tasks over 01:03 Demo

Future improvements

Add a scheduled module to the daily template to show recurring tasks

const date = dv.date(dv.current().file.name);
if (date) {
  const scheduledTasks = dv.pages().file.tasks
    .where(t => !t.completed && t.scheduled && t.scheduled <= date)
    .sort(t => t.scheduled, 'asc');
 
  const todayTasks = scheduledTasks.where(t => t.scheduled.equals(date));
  const carriedTasks = scheduledTasks.where(t => t.scheduled < date);
 
  if (todayTasks.length > 0) {
    dv.taskList(todayTasks, false);
  }
 
  if (carriedTasks.length > 0) {
    dv.taskList(carriedTasks, false);
  }
 
  if (todayTasks.length === 0 && carriedTasks.length === 0) {
    dv.paragraph("(无 scheduled 任务)");
  }
}

Q&A

Why not use Rollover Daily Todos to inherit yesterday’s tasks?

Someone in the comments asked why I don’t just use Rollover Daily Todos to carry over yesterday’s tasks. I wanted to reply directly, but my Bilibili comments don’t allow images, so I figured I’d make a dedicated post to answer.

  1. When I built this, I was just focused on getting the feature working — I didn’t go search for whether a plugin already did something similar.
  2. I installed Rollover Daily Todos and tried it. The issues it currently has:
  • all tasks are lumped together in one place
  • it can’t display the recurring tasks in the scheduled module

Example

Core features

  • Auto-backtrack: automatically reads content from the most recent dated note, so it doesn’t matter if you skipped a few days
  • Today’s goals: yesterday’s “tomorrow’s goals” automatically become today’s starting point
  • Past goals: aggregates past “today’s goals” and “past goals” across dates, so important things aren’t forgotten
  • Carry-over records: the unfinished parts of today’s records and carried tasks are automatically brought into the new day
  • Auto-dedup: smart cross-block deduplication, so the same item never shows up twice
  • Scheduled board: uses Dataview to show all due or overdue planned tasks
  • Source tagging: if the data comes from two days ago, it’s automatically tagged “from XX (N days ago)”