Hi,
I recently noticed that on a slow sync many of my birthday events loose their alarms. At first I thought the sync on the client end was at fault, but then I started to track this problem a bit and I think there is a fault somewhere in eGroupware… I am using the latest debian package of eGroupware on a ubuntu system with apache 2 and PHP Version 5.3.10-1ubuntu3.2.
I did a search on that issue and found some complaints and so from other people that might be related, but there were no real reactions on them, neither with useful solutions nor with “it’s a bug, we are going to solve that”. 
Basically, what I think, what is the issue, is that alarms in the past are discarded. I usually create real birthday events, i.e. an event in say 14th July 1981 which recurs every year on the 14th of July and has an alarm set to remind me of that event… now if I take that event and export it as iCal from the calendar, I get an iCal with the alarm correctly specified, like here:
BEGIN:VCALENDAR
BEGIN:VEVENT
DTSTART;VALUE=DATE:19810714
DTEND;VALUE=DATE:19810715
SUMMARY:Birthday Test
RRULE:FREQ=YEARLY
BEGIN:VALARM
TRIGGER;VALUE=DATE-TIME;TZID=Europe/Paris:19810713T180000
ACTION:DISPLAY
DESCRIPTION:Birthday Test
END:VALARM
END:VEVENT
END:VCALENDAR
Now if I re-import that very ics file that eGroupware produced for me into the calendar the alarm is gone. That clearly is an issue… I would try to patch eGroupware, but I’d need some directions on where that alarm is discarded. Or at least maybe a rough roadmap, which way an event takes from being an ics that is imported towards being stored in the database (hopefully that would be similar for a web-based import and a sync). I suspect that somewhere the “can’t do alarms in the past” guard is triggered during the import (it’s the same on a sync via SyncML and I suspect also via GroupDav), which is not so nice for recurring events…
Is there any sensible work around? Where is that check done? Is there any possibility to change it to accept alarms for recurring events and transfer them into the future in the right way? I know that this is done somewhere, too, because the alarm always shows for the next occurrence of the event and if that passes by the alarm is activated on the next occurrence respectively.
This really is bugging me for months, now… I always suspected my sync process to be at fault… but now that I dug a bit more into that, it is clearly a fault in eGroupware… the import of an exported and unchanged event should never change the original event.
Cheers
Achim