Help with a new plugin idea: Increased Due Date functionality

Background

I am not a hardcore developer by any stretch of the imagination; I've dabbled reasonably extensively in VBA, batch, SQL (of which i'm aware they're not all coding languages), and feel confident in being able to read through most simple code blocks put in front of me to work out what it's trying to do (for e.g. a python script) but I'm always on the lookout for the next step in learning.

I recently thought to myself "why not try making a plugin for Joplin", but everyone seems to know everything already ready and I'm a bit daunted! I have followed the tutorial for making Joplin Plugins up to setting up my environment with the required add ons, and have successfully made the Hello World plugin work in dev mode. I've also gone through most of the example plugins although I can't now find which github repository i found those in.

With little to 0 understanding of github, I'm nowhere near ready to try and share a plugin with the world, but I'd definitely like a crack at making something (and hopefully you can help me sharing it if that time comes too?!)

The Idea

It's pretty straightforward; I'd love for there to be a quicker, easier way, to amend the due dates of toDos, both individually and in a batch selection. Some buttons with predefined intervals on the menu bar can send the due date forward 1 day, 1 week, 1 month, next Tuesday etc. Similarly, when e.g. 3 notes are selected, I can move them all forward either by a fixed interval, or all to a specific date.

In Excel VBA you'd work out the range of cells selected, then cycle through each one making the required changes as you go. Because of this, the current process I think I need is:

  • Work out which toDos are selected (via making sure they are ToDos not notes)
  • Get the current due date of each toDo
  • Set the due date by adding the interval selected to the current due date

I feel like should be fairly simple, and because of this hopefully a valiant attempt to contribute to the community

The request

I'm not sure where to start with this now - I've got the idea and the building blocks to get going, and I've found the Joplin API doc but have no idea really on which key accessors and methods i need to be focusing on.

Maybe you've read through this and I'm not the sort of person who should be making plugins! I would totally accept that as an answer and will leave it to the pros

Really grateful for anything you can contribute

Here are a few APIs that might be helpful:

2 Likes