orgzly / orgzly-android

Outliner for taking notes and managing to-do lists
https://www.orgzly.com
GNU General Public License v3.0
2.68k stars 305 forks source link

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

Open sokolgeo opened 6 years ago

sokolgeo commented 6 years ago

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:

nevenz commented 6 years ago

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

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).

Asalle commented 5 years ago

would love to have this in orgzly!

flaviu-gostin commented 5 years ago

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)>

powelton commented 5 years ago

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.

sokolgeo commented 5 years ago

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 commented 4 years ago

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.

karlicoss commented 4 years ago

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.*
sokolgeo commented 4 years ago

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 notifications@github.com 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.

karlicoss commented 4 years ago

@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)>)

stefan2904 commented 9 months ago

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.