I’m trying (for the second time) to move from Notion to Obsidian, but I am running into a wall.
I’m a big fan of spaced repetition. My entire workflow is based around it. Not just flash cards, but the entire notes.
I know there’s the Spaced Repetition plugin, and that works perfectly for flashcards, but I don’t like it for entire notes since you can’t manually set review frequency for notes, it’s entirely based on the algorithm.
It might be better if I explain my workflow in Notion. In Notion I have all of my notes in one database. In the database I have a date property for “Last Reviewed”, an integer property for “Review Frequency” and a formula property that’s dateAdd(prop("Last Reviewed"), prop("Review Frequency"), "days")
. This works perfectly. Then I can have multiple views of the database where I filter one whether or not that date is in the past, sort by it or another date, further filter down on tag or subject, etc.
I cannot seem to find a good way to do this Obsidian. I was able to come up with a DataviewJS query that pulls the notes
dataview
TABLE without id file.link as Name, lastReviewedDate, reviewFrequency, nextReview
FROM "03 Knowledge Base"
FLATTEN lastReviewedDate + dur(reviewFrequency + " days") AS nextReview
WHERE (nextReview <= date(today) AND (nextReview) AND (review))
SORT nextReview
But I’m not a fan of the fact that what’s returned is static. Meaning I can’t further filter or sort it, without changing the query.
So now I have been looking into the Projects plugin, which seems to get me a pretty close to Notion database style view of all of my notes. BUT I cannot find a way to dynamically set the Next Review date property. I’ve looked into using Linter, QuickAdd Macros, MetaBind, but I’d prefer a way that rely on a convoluted, potentially fragile multi-plugin workflow.
Any suggestions on a more straightforward way to accomplish this?