Status-Detective-783 · 2022-03-28 22:10
yantar92 · 2022-03-29 02:05
You can use sexp timestamp format. See https://orgmode.org/manual/Deadlines-and-Scheduling.html and https://www.gnu.org/software/emacs/manual/html_node/emacs/Sexp-Diary-Entries.html You are looking for `diary-float` with negative argument.
Status-Detective-783 · 2022-03-29 02:14
Ahh I knew I saw that negative argument somewhere! I couldn't find it in the org timestamps docs. Thanks bunches!
WitnessTheBadger · 2022-03-29 08:25
The thing to watch out for with sexp timestamps, if I am not mistaken, is that your task only shows up in your agenda on the day it is scheduled. If you fail to do it, it simply disappears from your agenda the next day and does not show up as overdue the way a task with an ordinary timestamp would.
I say "if I'm not mistaken" because I only use sexp timestamps for things like holiday and birthday reminders, but it has been many years since I made that decision and I may be misremembering why. I'm sure somebody will correct me if I messed up.
yantar92 · 2022-03-29 10:02
You are right. Supporting overdue sexp timestamps is technically difficult. Built-in diary does not support this. Patches are welcome.
yantar92 · 2022-03-29 10:04
The relevant function is `org-time-string-to-absolute`. It contains the following comment:
> ;; Sexp timestamp: try to match DAYNR, if available, since we're
> ;; only able to match individual dates. If it fails, raise an
> ;; error.
Status-Detective-783 · 2022-03-29 12:36
Thanks! I know there's an agenda warning about sexp, though I'm not sure exactly what the limitations are. I'd **guess** that agenda does some limited parsing of sexp, but doesn't execute them for resolution. But I'm very new, and I could be wrong. I'll def look out for this though!
unhammer · 2022-03-30 13:33
Note that, along with the agenda issue already mentioned, they don't (yet) work with org-ql https://github.com/alphapapa/org-ql/issues/262 .
It'd be nice to have something more built-in to org-mode, but I can imagine it's a big task to make it work everywhere.