Feature request: ToDo Expiration Dates For Sorting

I get that, but I don’t think that an alarm is the same thing as due date. An alarm is reminder, which is usually set in a relation with a due date, but they don’t have to necessarily coincide or be used at the same time. For example, I might set a task with due date in a week, and set an alarm for 2 days before that to have time to complete it. Or just set a task due in a week without an alarm at all.

However, even assuming that we would use them as one as the same, I still didn’t find an option how to sort the tasks according to the alarm date or filter them using it. Am I missing something?

I see, Joplin doesn’t support that yet. But I suspect if you implement it in an intuitive way as you’ve described your changes would be accepted.

Ok, thanks. So far I've never coded real software, only some data analysis in Python and Arduino scripts, but I can add it to my procrastination projects to do at some point :slight_smile:

Nice to hear, thank you! I will stay tuned and see what’s to come.

How’s it looking? any suggestions? Right now, I implemented it in mobile, then I will do it for desktop also. You can add a due date for your note or todos, and then choose to sort according to them. I will try to show the due date with title also after this. Please have a look and let me know if I can improve anything.

3 Likes

Looks awesome!

My only suggestion would be to have some way to show the due date in the list view. Maybe right-justify it in the same row as the title (maybe with a different font color or smaller side, to differentiate from the title).

2 Likes

I’ll surely do that, just doing some testing and final touches to the previous code. After this I’ll try to add due date to the list.

I have improved sorting of due dates with these 6 cases, which I think will be best for everyone:

  1. incomplete todos with less due date will be on top
  2. incomplete todos with more due date afterwards and then incomplete todos with no due dates.
  3. completes todos with less due date
  4. complete todos with more due date
  5. complete todos with no due dates
  6. notes ( sorted on their updated time, created time, id )

As soon as I get confirmation that everything is correct in this PR, I will implement due date showing in note-list also. Feel free to give any further suggestions, there is also a working video on this PR if you are interested.

1 Like

That looks like a good way to handle sorting.

I would also say that incomplete TODOs without due dates should sort between #2 and #3 on your list.

2 Likes

Oh I forgot to type that point, that is already there, all uncompleted todos are always on top and then sorted based on due date.
updated my post.
Link of apk with this feature, if anybody wanna try and help in testing.

2 Likes

I totally concur to that feature request and proposed solution. I've just migrated from Evernote and now terribly miss the possibility to see nearest planned tasks. I've been using that essential feature in Evernote many times a day.

In the desktop version, the Note Overview plugin leverages the issue, but on Android there is nothing. (Yes, for now I'm using on mobile the To Do overview created on desktop, but it is not a live view, so it does not include fresh reminders created on mobile until I get to my notebook and refresh).

Hello,

New to Joplin here so I'm not completely aware of all the way to use the app but I also found that date tagging / searching would be a nice addition.

Due dates are one such tag and is different from alarm (which you might want to set earlier), but one could think of more. For instance one could have done dates, abandoned dates...
Another example could be if you have notes for people and you want to add a date for their birthday.
In all these cases, it would be nice to have a feature to search, filter, and sort based on those.

One way I thought about it is in term of tags. Users could tag a note/todo with a tag like due:2021-09-21T15:00, or project1:done:2021-09-21...
That gives a lot of flexibility to organize them however needed.

The problem doing that is:

  1. It creates a lot of tags, some possibly containing only one item
  2. Searching is pretty static: cannot search a range, sort by tags...

The first point could be mitigated with nested tags (there seems to be separate issue for that).
The second point would could be addressed with the search syntax.
The syntax used in created:day-1 would look make conflicts (e.g. tag:*:due:day+7).
Maybe some sort of search expression ${{ or(tag:*/due:${date} for date in timerange(${today}, ${today}+7) }}.

These are not perfect ideas... Hope it can give some inspiration. I believe nested tags + powerful (dynamic) search + Embed Search (so you don't have to remember search queries) could get us pretty far!

Hi @AntoinePrv

I completely agree with this. I think it's necessary that the date and task features are extended.

For this, you can use the young plugin for task repetition (thanks to @BeatLink).

As for filtering, I do something like this but more advanced features for tasks can be added here.