Feature request: ToDo Expiration Dates For Sorting

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!