- fixed fatal error if participant is no account
- if participant has no email use a pseudo one: noreply-$uid-uid@egroupware.org
- do not add account of calendar as participant (readd it in ChangeMessage)
- use calendar_boupdate::update() instead of ::save() to get notifications
- fixed fatal error call to member function ->format(), if event has an exception
- SIFE support improved
- various vCalendar 1.0 issues fixed
- device specific timezone support for recurring events
- pseudo exception handling improvements
- Implemented two new monthly rrules: last day of month and last weekday (eg. workday) of month
- The constructor accepts times only as DateTime (or decendents like egw_date) to work timezone-correct.
- The timezone of the event is determined by timezone of the startime, other times get converted to that timezone.
- There's a static factory method calendar_rrule::event2rrule(array $event,$usertime=true), which converts an event read by calendar_bo::read() or calendar_bo::search() to a rrule iterator.
- The rrule iterator object can be casted to string, to get a human readable describtion of the rrule.
- There's an interactive test-form, if the class get's called directly: http://localhost/egroupware/calendar/inc/class.calendar_rrule.inc.php
--> next step will be to use the rrule iterator in calendar_bo::insert_all_repetions() to calculate the recurences"