Homepage    |    GitHub    |    API    |    FAQ

Plugin: Repeating To-Dos

A powerful and comprehensive plugin for to-do repetition/recurrence

This is a WIP plugin that once completed, will allow users to make tasks and to-dos repeatable/recurring. That is, tasks can be done daily, weekly, monthly or yearly.


I'd really love that !

Not sure, if it is intentional, but it is not in the plugin repo yet. Thus it can't be found from within the desktop app.

Yeah, its still pre alpha, at this point nothing more than the UI. I'll work on it when i can but I struggle with finding free time

Hey i am interested to work on this feature..can i work on it?

Since it's pre-alpha, I don't wanno open issues on github.
Here is my initial findings:

  • nice design, a big like for the idea and initial implementation,
  • when I click on a tab inside the fav window, the underlying note DOES NOT open,
  • it would be nice to have a keyboard shortcut, or a small button to toggle visibility,

Joplin 1.8.1
Fav plugin 1.2.1

Sure thing! I can add you to the repo

1 Like

The UI is more or less complete, now for persistence and logic

1 Like

There is currently a snag in development. The plugin requires newer features of the API than the plugin scaffolding provides.

I am currently waiting on the developers to update the scaffolding generator.

The progress of this issue can be tracked here: The Yeoman plugin scaffold generator is out of date · Issue #4828 · laurent22/joplin · GitHub

Bro can u create a dscord community.it's easier to discuss abt this project in there.

Here's the link. Sorry it took so long

Can you add plugins like this to the mobile version of Joplin.

Would be great to see this plugin become integrated into Joplin itself as a native feature.

1 Like

Okay so I have some good news; I've resumed work on the plugin as I really need it myself in my personal life.

The database storage of recurrence data is more or less complete. Next will be to integrate the recurrence dialog with said database. After that, would be to implement the logic to calculate the next date a recurring to-do should be done so the system can revert the done status of a task. And finally, I will need to implement the timer/loop that does the undoing of the task at the right time.

From there on, its documenting, testing, clean-up and publishing!

So I will try to get the dialog and database working together today.

Oh also, I've moved the repo away from GitHub to GitLab. Mainly for privacy and open source reasons but also GitLab is just better to work with.

Here's the new link: Code / joplin-plugin-repeating-todos · GitLab


The database is now tied into the dialog for each note so now the recurrence data for each note can be seen and manipulated, with all changes saved to the database.

furthermore i went ahead and did some major refactoring, documenting and the like, but there is a lot more work to do.

Next will be to clean up the recurrence class and implement the logic for calculating the to-do reset date

1 Like

Happy to report that the recurrence class is now functional. The next step would be to implement the logic for when tasks are completed

1 Like

The code is almost finished now, however there is a slight hiccup as the API will only allow listening to changes of the currently selected note.

Once onNoteChange Event is not emitted for all but the current note · Issue #5197 · laurent22/joplin · GitHub is resolved, then the plugin can be completed

1 Like


Ive implemented a workaround for the checking of note changes. The plugin is now feature complete and is ready for alpha testing! I've already taken the liberty to publish it to NPM

Now all that remains is testing, code cleanup and documentation

1 Like

Okay so theres a memory leak somewhere. Looking into it

Hi there @BeatLink ,

I assume the memory leak hasn't been fixed yeat? My ram and cpu are getting devoured and debug console is yelling:

PluginRunner: Got message (3): joplin.data.get ["search"] {query: "iscompleted:1", fields: Array(4), page: 0}


PluginRunner: "Got message (3): joplin.data.get", "[["search"],{"query":"iscompleted:1","fields":["id","title","body","todo_completed"],"page":0}]"

And after a few minutes Joplin crashes. Problem's also gone after To-Do is disabled.

Hope I'm not barking the wrong tree, still in babyshoes codingwise.