On 2025-08-09 11:34, Remind list wrote:
> I'm thinking of adding a TODO feature to Remind.
My gut feeling is that it mostly just mimics existing functionality, and
fails to be as flexible as existing functionality.
I have TODO items that use TAG to manage state
REM 30 Oct 2025 +90 \
TAG started \
PRIORITY [PRIO_HIGH] \
MSG %"Reply re. TODO feature%" %b
I can also use existing functionality like trigtags() to do colorization
or other shenanigans in a msgprefix() type function.
Now a hastag() function that would let me test for
hastag("started") || hastag("pending")
so I don't have to do weird contortions to do that check when something
has multiple tags... ;-)
> 1) A TODO can only have a completely-specified due date. No
> recurrences, etc.
With regular non-TODO entries using REM, I can have recurring events
and use some helper functions:
FSET done_y(y) y < $Ty
FSET done_ym(y, m) y < $Ty || (y == $Ty && m < $Tm)
that I can use like
REM 17 +7 SATISFY [done_ym(2025, 7)] MSG %"Electric bill due%" %b
REM Jan 31 +7 SATISFY [done_y(2025)] MSG %"Car inspection due%" %b
This gives me repeat reminders, and when I complete a task, I can update
the done_y/done_ym parameters to specify when last I did the task so it
doesn't keep showing up in the +7-style notice.
> 2) TODOs would not normally appear in the calendar, but would be in a
> separate task list.
This feels...peculiar? I kinda like the due-dates on my calendar.
If I wanted todo items alone, I might use -p output and filter for tags
that indicate todo-items (I did this when we were writing my grandmother
each month, tagging items as letter-worthy-news, and then on the first
of each month, use -p output to filter for those events to remind us of
what we'd done in the previous month to tell her about). Or put them in
a todo.rem file and process them standalone (also allowing me to import
them into my regular calendar).
That said, maybe other folks want this?
> 3) A TODO would have a state associated with it: Things like
> not-started, started, complete.
As note above, the existing TAG functionality works well enough for me
here. But a bit of tag-reflection would be welcome :-)
> 4) By default, complete TODOs would be ignored.
This seems to be the biggest selling-point. There doesn't seem to be
a way to do something akin to a SATISFY to prevent it from showing up,
unless you also use some MAYBE-UNCOMPUTABLE.
Maybe some new IGNORE keyword that behaves like SATISFY + MAYBE-UNCOMPUTABLE
for something like
REM Aug 12 2025 TAG inprogress IGNORE [hastag("done")] \
MSG Buy school supplies for kids
that would let me change the tag from "inprogress" to "done" and have
the TODO item vanish. (totally shooting from the hip on syntax,
feasibility, verbosity, etc)
> Question: Should we also be able to associate a time with a TODO for
> something that must be done by a specific time on the target date?
Similarly, if one uses existing REM functionality, TODO items get times
for free :-)
> Should we have a separate keyword or should we be able to indicate
> that a REM command is a TODO and have the full power of recurrences,
> etc? I'm not really sure recurring tasks make sense; if you mark such
> a task as complete, then which recurrences are complete? All of them?
This is where I find the "done as of $DATE" functionality useful.
Yes, it was done *last month*, but I still need to pay that bill *this*
month.
I don't want to poo on your idea, but I also don't want to see you burn
hours of your time making the code more complex (and thus harder to
maintain) when existing functionality largely covers my TODO needs.
Just my $0.02 on remind+TODOs
-tim
--
_______________________________________________
Remind-fans mailing list
[email protected]
https://dianne.skoll.ca/mailman/listinfo/remind-fans
Remind is at https://dianne.skoll.ca/projects/remind/