Review old notes, aging notes, spaced repetition

I was inspired by this post to start regularly reviewing my old notes.

It was quick and fun to whip up a note review script in Templater, which I have been using every day since. Huge thanks to the developers of Templater and Dataview - you make Obisidian workflows so easy!

How it works

When you run the script it will open a selection box to choose from a random assortment of old notes which need reviewing:

image

:small_blue_diamond: The last reviewed date is taken from a configurable frontmatter field. If it doesn’t exist, the file created time will be used for the date selection.

:small_blue_diamond: You can specify only to show notes that haven’t been reviewed in the last X weeks, and can weight the notes so that older notes have a higher chance of being selected.

:small_blue_diamond: When you choose the note from the selection box, it will open that note and update the frontmatter “last reviewed” field for you.

:small_blue_diamond: Optionally you can specify your “Inbox” folder, and if it contains any notes the script will open the first of those instead of presenting the selection box. I use this to quickly process my inbox and make sure I always get to inbox-zero.

Installation

Get the template code from Github.

  1. Make sure you have both Templater and Dataview installed.
  2. Create a new Templater template note.
  3. Copy and paste the template code into your new template note.
  4. Launch the script by using the Templater command “Open Insert Template modal”.
  5. Optionally, assign this script to a hotkey using the Templater settings page.

Caveats

  • Due to the way Templater works, you will need to have a note open (any note at all) when you run the script. Templater can’t launch with an empty window.

Further customisation

Thanks to the power of Templater and Dataview, you can customise this script to do almost anything you want.

For example, along with a “last reviewed” field, you could add your own spaced repetition “interval” field. Use both those fields together to compute the selection of notes to choose from.

Another example, if you like you can get rid of the selection box, and just have the first random note presented. Some people might prefer the workflow of being taken directly to the first note by chance with no choice in the matter.

5 Likes

I have a problem (also mentioned this in the other thread). Thanks in advance for helping :slight_smile:

The Console says this:

Templater Error: Template parsing error, aborting.
Failed to parse query in ‘pagePaths’: TypeError: query.trim is not a function

And furthermore, I would love to display a list with files that I’ve not accessed for a long time, sorted on how long ago I’ve accessed it. Do you know how to do that?

I’m not sure sorry. pagePaths doesn’t appear in my template, so are you certain it’s related?

The only thing I could suggest for troubleshooting is that you post the contents of your const FOLDERS = [] line, so I can see if there’s anything misconfigured there. Otherwise set it back to the original of const FOLDERS = [] and see if the problem goes away.

Hello, AlanG. Sorry to butt in on a different thread, but I didn’t know how else to reach you as the original thread was locked. I found your answer here very helpful, but when I click on “How to Set Up” to learn more about it, it takes me to a page that says share note has moved to a new domain. If this note exists in the new domain, would you mind sharing the link to it?

@sse - thanks, I’ve updated the link. Summarise text under headings

Thank you so much!