Feature request: ToDo Expiration Dates For Sorting

I was going to open an issue, but the template said to post here first, so here I am.

This is related to, but in my view distinct from:

I feel this is distinct, in that this feature suggestion is more precisely defined and also more narrow in scope than the above noted requests.

I propose that “To Do” notes should have the ability to include a due date, primarily for the purpose of affecting the sorting order. This should probably be presented in the tool bar area above the note being edited, perhaps as an additional text field next to the title. The existing date-picker widget from the metadata editor could be re-used. It would probably be reasonable to store the set due date either as note metadata (alongside updated, created, history, etc.) or using whatever mechanism is used to store the complete/incomplete status for the To Do checkbox. I’m not familiar with how this information is represented internally, so maybe it should go somewhere else.

There should also be a check-box in the “view” dropdown which would read something like “sort notes by due date first”, which would cause all notes with a due date to sort before all other notes, and to internally be sorted by due date. Remaining notes would be sorted per the existing sorting behavior, which would also be used as a tie-breaker for matching due dates. I am not personally very familiar with the underlying tech stack that Joplin uses, however I assume it has at lest one stable sorting method available for use, so from a sort order perspective this should be quite straightforward (but maybe not, depending on the data structures used).

Additionally, the due date should appear in the note title in the notes text. Perhaps it could be right-justified and displayed in a lighter font to provide a clear distinction. Maybe even some color coding based on if the due date is in the future / today / past.

I think that to be useful, special searching functionality or notifications support is not needed. Simply having an extra date field to search by would be immensely useful. Those other features would be nice also, but are separate topics of discussion in my view.

6 Likes

Thanks @charlesdaniels for bringing that up. I recently switched to Joplin and was frankly astonished, that the app doesn’t feature this essential feature.

Please tell me everyone, how on earth do you keep track on To Dos in Joplin, if you can’t set a due date (just an alarm), if you can’t see a due date and if you can’t sort by due date? How do you orientate, how do you set priorities?

Or am i missing something here, is Joplin not at all designed for this purpose?

I would love to see some activity in this matter, isn’t this an issue for more people? What’s the current status on that?

1 Like

@_Michael

In the interim, this has been my solution:

Any notes which have a “due date” I prefix with _ followed by the ISO8601 due date. The _ will cause them to sort alphabetically before everything else, and ISO8601 will collate in descending order automatically.

This is a little inelegant due to being a manual process, and also can’t be easily searched (e.g. "all tasks due between date A and date B can’t easily be encoded as a search).

For starters, the title here is extremely misleading especially now that we’re in GSoC season, but the simple answer to this entire topic is this: due to most of this project being done on volunteer work and the main dev team being extremely small, the complexity of implementing these features outweighed the amount of time and resources available to implement them. It’s also something that only really recently started getting requested again and is being looked at as possible GSoC project submissions.

Note: I’m a mentor here but not one of the devs. I’m just more of one of the people guys here to help answer questions like this along with direct users to information and whatnot.

3 Likes

@bedwardly-down

I made this post before GSoC announced as far as I know. I don't see any option to edit the title, but if an admin/mod wants to change it for clarity, I have no issue with that. I'm a big dummy - there is a very obvious edit button next to the title. I will change it to be clearer shortly.

1 Like

And as a Mentor, I keep forgetting that I can edit the title myself, so double dummy. Ha :sweat_smile:

1 Like

While I have this context-switched into my head…

http://todotxt.org/ is a good example of how UI/UX might work for more advanced TODO management (including due dates). I’m not suggesting that Joplin should implement 1:1 all the features that todo.txt has, but the todo.txt community has a number of GUIs for desktop, web, and mobile (scroll down on the linked page for a list of such GUIs) which might serve as inspiration for how due dates or related features might work.

3 Likes

@PackElend what are your thoughts here about what @charlesdaniels linked?

to be honhest I really like it, the architecture is somehow the sameas for Joplin and file format is super simple as well.
May we find someone who is intersted in coding it altough it might be too close to the deadline but I tagged it anyway.

1 Like

I like it too. Since it’s open source, i wonder how difficult it would be to add that as an integration or something like it. It would need to be ran by the devs but I don’t think the wheel should be reinvented if there’s options available that solve a problem. Am i right?

fully aggree

I do see two core issues: the License and it’s in Bash. Joplin couldn’t use any of the code from there without having to change to GNU from MIT. Whoops

maybe, if we ask them if are allowed to use it despite license differences?

Bash it is just script language, there might other interpreter around?

True on script. On license, that’s a hairy subject that i don’t want to go further on since I’m not sure enough.

1 Like

AFAIK you should be able to re license from MIT to GPL, since the GPL would still satisfy the terms of the MIT license. I am not a lawyer and this is not legal advice.

todo.txt is also a very simple format to implement in any language. It’s likely someone else has already written a parser in js.

However, I meant that post more as a representative example of a project which got to do management right, not as something to be directly integrated.

Adding todo.txt syntax support as inline code blocks a la Mermaid is an interesting idea I hadn’t considered, but I would consider that orthogonal to the subject of this thread.

1 Like

I’m not a lawyer either but I believe MIT is a more permissive license than GPL. GPL is all about everything being free and open source with the catch that all derivatives must also be the same and no proprietary software could be created from Joplin; MIT leaves it up to forker and devs to decide which direction they want to go as long as the terms are met.

Either way, let’s wait for the devs to get here and see their thoughts. :wink:

Thanks everyone for bringing some motion to this issue! Noobs like me who just like to use the app without beeing able to contribute on the tech level rejoice!

1 Like

@_Michael discussion is still a contribution here. It allows new ideas to come about and helps the team here prioritize what nice to have but not must have features need to be added to Joplin. It’s a community project afterall, so welcome. <3

2 Likes

I was just unsuccessfully looking for a due date feature in Joplin when I stumbled upon this thread. I’ve also found this post, which somehow implies that the due_date property is already somehow implemented in ToDo, even if not explicitly. Can it not be somehow easily leveraged?

Todos have an associated alarm which can easily be set. Either by clicking on the alarm clock above the note on desktop, or in the 3 dot menu on the mobile version.