pimutils / khal

:calendar: CLI calendar application
https://lostpackets.de/khal/
MIT License
2.61k stars 200 forks source link

Support for complex recurring rules #663

Open varac opened 7 years ago

varac commented 7 years ago

Currently, the repeat rule (RRULE) only allows basic recurrence:

-r, –repeat=RRULE specify if and how this event should be recurring.
    Valid values for RRULE are daily, weekly, monthly and yearly

Khal should allow complex rulesets like i.e. every last friday or every week on Mon, Thu and Fri.

I know this by itself is a complex feature request but I need it badly to migrate to khal for my day to day calendar.

varac commented 7 years ago

Looking for calendar software that allows these kind of complex recurrence rules I found that evolution calendar is doing a good job (although I don't like it for other reasons).

geier commented 7 years ago

Just in case you didn't know: ikhal actually supports at least the examples you just named since 0.9.4.

geier commented 7 years ago

Also: how would you want to enter a rrule like every week on Mon, Thu and Fri?

varac commented 7 years ago

Just in case you didn't know: ikhal actually supports at least the examples you just named since 0.9.4.

@geier thx for the hint about ikhal, in fact I didn't know until now. But I'm looking for khal support here.

Also: how would you want to enter a rrule like every week on Mon, Thu and Fri?

I don't know which spec/standard khals date processing is based on, but pointed to california, which allows sth like this:

Mayor Quimby's payoff due every Monday and Wednesday at 11am

The most imoportant examples to implement from my point of view:

WhyNotHugo commented 7 years ago

Not sure about the current state of california, but last I tried it failed to parse some very obvious times, or dates which weren't in US-format, so I wouldn't use it as a reference. It looks like "natural language" at first, but I soon realized it's really "one person's natural language".

As far as the interactive editor goes, I've been prototyping a bit (todoman also needs recurrence support), but it's not an easy task. I'll try to make something reusable once I get something understandable done.

geier commented 7 years ago

@hobarrera: did you have a look at the one in ikhal? I believe it covers all reasonable cases pretty well (and should be reusable).

also, I just noticed what inspired your username...

Quoting Hugo Osvaldo Barrera (2017-06-06 18:51:40)

Not sure about the current state of california, but last I tried it failed to parse some very obvious times, or dates which weren't in US-format, so I wouldn't use it as a reference. It looks like "natural language" at first, but I soon realized it's really "one person's natural language".

As far as the interactive editor goes, I've been prototyping a bit (todoman also needs recurrence support), but it's not an easy task. I'll try to make something reusable once I get something understandable done.

-- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/pimutils/khal/issues/663#issuecomment-306548503

varac commented 7 years ago

I'll try to make something reusable once I get something understandable done.

Having some kind of library for this that can be shared amongst projects would be awesome !

WhyNotHugo commented 7 years ago

My username is just my initials and last name, nothing funky. 😆

Looks like I hadn't looked at the one in ikhal for a while. Looks pretty good. Are there any uncovered cases?

geier commented 7 years ago

Looks like I hadn't looked at the one in ikhal for a while. Looks pretty good. Are there any uncovered cases?

Yes, lots of uncovered stuff, the RFC allows to express anything you can imagine, like on every second month on the 30th, but only if it is a sunday and then only every third of those occurrences.

I had a quick look at what other applications are doing and implemented what looked sensible to me.

Quoting Hugo Osvaldo Barrera (2017-06-06 19:12:32)

My username is just my initials and last name, nothing funky. 😆

-- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/pimutils/khal/issues/663#issuecomment-306554538