Slow KOrganizer development... And new recurrence handling in libkcal

As Bram noticed in his blog, I haven't been working much on KOrganizer lately. That's for several reasons:

  • Lack of time (as usual, since I have my day job at university, and several other hobbies),
  • I needed some time off KDE after the release and all the time that I spent on writing the groupware resources in the last few weeks before the relase. And
  • Recently I started rewriting the whole Recurrence stuff in libkcal so that libkcal now (not committed yet) supports everything that rfc 2445 defines (multiple RRULES, EXDATEs, RDATEs, EXRULEs, even multiple EXRULEs, arbitrary combinations of the BY* components, etc.). It's not yet completely finished, but it looks really promising. (And no, don't worry, I won't submit it during the NL meeting and break everyone's kdepim during a pim-meeting)

This new recurrence backend is implemented in libkcal, so when you load a calendar with arbitrary recurrences, the events will show up correctly even for recurrence types that korganizer isn't able to edit. The UI to edit recurrences are a completely different topic, and if I were in NL this weekend, I'd certainly talk to the usability guys/gals about the recurrence editor. The current one has several problems or shortcomings:

  • It looks terribly complicated for a simple thing. In evolution it looks so simple, but their approach has i18n problems, since it tries to generate a sentence from several widgets:
  • It allows you only to enter one recurrence, and even that is quite limited. E.g. you can't enter an event that recurs on every first and third sunday each month.
  • Since KAlarm also uses a similar editor, I'd like to make the editor general and move it to libkcal, so other applications can also make use of it.
  • Exceptions are only possible as dates in the editor, while sometimes you want to exclude only one specific time (relevant with sub-daily recurrences, like in kalarm)
  • It's not possible to add additional recurrence dates.

The cool stuff about the new recurrence backend is that you can now create events with really sick recurrence rules, like:

  • The last workday of each month. (okay, that's quite usual, but the old version wasn't able to handle that at all)
  • Every Friday the 13th, except in the months of July and August.
  • every year on January 1st, but only if it falls in Week #1 of that year (Week #1 is defined as the first week that contains at least 4 days of a year).
  • On all days that fall in calendar Week #53 if that year has 53 calendar weeks.
  • Every 3 hours, on Mon-Fri each January.
  • Every third saturday in June, at 8:30, 9:30 and 10:30.

No idea if any of these are really needed anywhere (except for the last weekday of the month, which is typically pay day in the US), but it's still nice to have a full implementation of the standard.


What about:
"Every Thursday and every 1., 3. and 5. Tuesday from 8pm to 11:59pm and every 2. and 4. Tuesday from 10pm to 11:59pm"
Will something like that be possible? Currently I have to use 6 events for that...

By Michael Olbrich at Wed, 05/25/2005 - 09:11

If the recurrences have a different duration (the tuesday ones are 3:59 and 1:59 hours long), it's simply not possibly by RFC 2445. Each recurrence by definition has the same length...

So you'll still need 2 or 3 events to model this event. Notice however, that this is only about what libkcal is able to do. The UI in KOrganizer is a different story. So while it's possible to use 2 (or 3, depending on the exact duration of the thursday events) event to model this in theory, it probably won't be possibly to enter these two events via korganizer (because the recurrence editor would be much too complicated).

But that's my next project: simplify the recurrence editor, and at the same time make it more powerful...


By Reinhold Kainhofer at Wed, 05/25/2005 - 10:40

Working on something like KOrganizer all by yourself can be overwhelming especially when you have a hard job as well. Let's not mention that you need some time for your own family and friends so it's quite ok. Maybe others don't simply understand how much time programming takes up.
Mary-Anne Davis, soft iasi affiliate.

By maryadavis at Thu, 05/29/2008 - 12:11