Programmable Attention/Notification Plugin: for Tasks, Events, Spaced Repetition, Incremental Work, and more

Idea

I wish I knew how to code well, but here’s what I’ve been thinking about… and it would be awesome if someone could help with this.

Basically, like a social media notification feature, which alerts you to what should be done now/today. You know how those little numbers appear on Facebook? Could appear on the sidebar…
image

Then clicking on it would show a list of things that are brought to your attention. This idea is inspired by Andy Matushak’s programmable attention. Using this method, it can be used in many ways:

  • Notifying you when it is time for a task or event
  • Notifying you when you are overdue for something
  • Notifying you when you have finished a Pomodoro
  • Notifying you when you haven’t visited a page in a while
  • Notifying you according to a spaced repetition algorithm
  • etc.

How many times have we taken down notes of things, completely forgot about them, and when coming across it again, have to relearn it from scratch? Also, how many times have we forgotten to complete tasks? Isn’t it also painful to create templates on daily note pages to remind ourselves of what to do for the day?

What if it could all be scheduled into one tiny button on a sidebar - when time, it pops out a notification?

Implementation as HTML comments

It would be cool if inside the body of a text, we could put in a html comment like such:

text to remember <!-- notify: 2 days at 1300hrs -->
text to remember <!-- notify: [[2021-08-25]] at 1204hrs -->
text to remember <!-- notify: every 2 days from [[2021-08-25]] -->
text to remember <!-- notify: every 2 days with `anki algorithm` -->

Storing Variables and Algorithms in the block

Ability to add in variables that are stored:

text to remember <!-- notify: every 2 days with `anki algorithm`, EF: 2, n: 1 -->

The above is an example of the Anki (spaced repetition software) algorithm, denoted by n>2 I(n):=I(n-1)*EF where n represents the number of iterations, and EF represents the ease factor, or how easy the item is to recall (modified everytime it is completed). But this is just an idea for a more complicated use.

Or if we could have modified variables according to the front-matter of the page:

text to remember <!-- notify: 2 days from file.mtime -->

This above would show a notification for a few variables from the modified time. Or we could have randomised ones.

Aesthetic Ideas

(1) For lesser disruption, we could also utilise footnotes:

text to remember [^1]

[^1]: <!-- notify: 2 weeks from [[2021-08-21]] -->

(2) Otherwise, we could create a separate page exclusively, which transcludes the blocks that you want to notify about. For example, for a block on [[A]], we could transclude that block [[A#^block]] on the [[B]] page as such:

![[A#^block]] <!-- notify: 2 weeks from [[2021-08-21]], transcluded -->

Use Cases

You can technically use this for To Do Lists, to schedule things quickly, use the GTD method, incremental reading/writing, weekly tasks, weekly reviews, monthly reviews, bimonthly/annual/weird timing reviews, random reviews, remind you of things that you’ve put on a ‘someday’ list, spaced repetition learning, etc.

What do you guys think? If you like the idea, let’s discuss.

6 Likes

Doesn’t seem that there’s too much interest in this. You know what? I’m going to build it. If you’re interested please suggest some things that you’d like to see in this plugin and we can discuss further.

3 Likes

I like the idea and integrating these reminders within obsidian would be nice. I do this currently by syncing between my jot down app(apple reminders) and obsidian. Reminders allows me to set deadlines, which I didn’t really think obsidian was made for.

2 Likes