orgzly-android icon indicating copy to clipboard operation
orgzly-android copied to clipboard

Support for sexp diary entries implemented in the Emacs calendar/diary package

Open sokolgeo opened this issue 7 years ago • 10 comments

The following node would appear every Friday in org-mode agenda: * Friday beer <%%(= 5 (calendar-day-of-week date))>

There is apparently no support for "sexp entries" in Orgzly. I mean my nodes marked like the above example does not seem to pop up in Orgzly agenda / search results.

If it is too complex to implement (I guess it is), may be we should mention it in documentation as known software deficiency?

Sexp references:

  • https://www.gnu.org/software/emacs/manual/html_node/emacs/Sexp-Diary-Entries.html#Sexp-Diary-Entries
  • https://orgmode.org/org.html#Timestamps (see "Diary-style sexp entries" line)

sokolgeo avatar Jan 09 '18 14:01 sokolgeo

I did take them into account initially, planning to support various formats:

  • [2018-01-01 Mon ++1w]
  • %%(diary-float t 4 2)
  • ev Fri
  • 15 * * * 1-5

But that was a bit too ambitious and probably not worth it.

Unless there are enough people who depend on this and someone want to take a shot at it.

BTW, your example wouldn't be displayed even with something like <2018-01-05 ++1w>, as Orgzly doen't currently get any times from the content (#76).

nevenz avatar Jan 09 '18 15:01 nevenz

would love to have this in orgzly!

Asalle avatar Jan 13 '19 19:01 Asalle

I would love to have this in Orgzly as well. I am synchronizing my Orgzly notebooks with my laptop, where I use Emacs in Org-mode. I can't have timestamps before 1970 in Emacs, so for birthdays before 1970, I am using something like <%%(org-anniversary 1965 04 27)>

flaviu-gostin avatar Jun 26 '19 10:06 flaviu-gostin

I can see it's been a long time, but vote for this feature as well. Without being able to see sexp diary entries I cannot rely on orgzly and instead have to look at my agenda exported from orgmode.

powelton avatar Sep 16 '19 16:09 powelton

Current version of Orgzly now supports repeating plain text timestamps! Just add something like <2019-03-20 +1d> or <2019-03-20 +1y> in the text of your emacs node. Then make an Orgzly search like ad.30. It will show correctly all occurrences of this node, including future ones. Now I am happy camper and does not actually seem to need full support for sexp diary entries anymore! Orgzly is now my daily driver! Hope it helps someone out here. Just try re-formulating your repeating events in simpler above format now supported by Orgzly! PS Obviously full org-mode Agenda shows the above repeating timestamps the same correct way with all further repetitions.

Unless there are strong objections requiring full sexp diary entries this issue is closed on my side.

sokolgeo avatar Sep 16 '19 18:09 sokolgeo

OK, upon further reflection there are still use cases requiring sexp agenda support. Some things indeed happen 'each second monday'. So the issue is re-opened, although I would see implementation priority as low.

sokolgeo avatar Sep 20 '19 16:09 sokolgeo

Ran into org-recur, new org-mode package for recurring tasks (I think it's gonna be presented on Emacsconf in a week).

Didn't have time to try and integrate with my emacs yet, but it looks pretty neat, definitely easier than sexp. Perhaps we could get inspiration from the syntax they use.

|+2|: Recur every other day.
|+w|: Recur every week.
|1|: Recur on the first of every month.
|Thu|: Recur every Thursday.
|Sun,Sat|: Recur every Sunday and Saturday.*
|Wkdy|: Recur every weekday.*

karlicoss avatar Oct 27 '19 16:10 karlicoss

How about more complicated cases, like "every last Friday" of every second month? Is this supported?

On October 27, 2019 5:16:53 PM GMT+01:00, Dmitrii Gerasimov [email protected] wrote:

Ran into org-recur, new org-mode package for recurring tasks (I think it's gonna be presented on Emacsconf in a week).

Didn't have time to try and integrate with my emacs yet, but it looks pretty neat, definitely easier than sexp. Perhaps we could get inspiration from the syntax they use.

|+2|: Recur every other day.
|+w|: Recur every week.
|1|: Recur on the first of every month.
|Thu|: Recur every Thursday.
|Sun,Sat|: Recur every Sunday and Saturday.*
|Wkdy|: Recur every weekday.*

-- You are receiving this because you modified the open/close state. Reply to this email directly or view it on GitHub: https://github.com/orgzly/orgzly-android/issues/269#issuecomment-546709855

-- Sent from my Android device with K-9 Mail. Please excuse my brevity.

sokolgeo avatar Oct 27 '19 17:10 sokolgeo

@sokolgeo don't think so, the author mentions sexp in readme.. But just threw a suggestion which might satisfy at least most of ordinary users :)

Personally I do use sexp for 'last day of month' on my desktop, and it's somewhat similar to this quite a bit of lisp code, do you think it's possible to achieve something a shorter diary-float expression?

If we could express everything via a single diary-float, would be ideal since it'd be relatively straightforwrad to support in orglyz without reimplementing elisp :) Otherwise, perhaps it's something that has opportunity to be improved simultaneously on desktop emacs and in orglzly (I personally never managed to remember the syntax and just using alias functions like DEADLINE: <%%(on-nth-day-of-month 3)>)

karlicoss avatar Oct 27 '19 17:10 karlicoss

Would also be cool for org-contacts-anniversaries - which could be supported by simply parsing the BIRTHDAY property to create a entry (annotated with age) in agendas.

stefan2904 avatar Nov 24 '23 14:11 stefan2904