3 ms·
My day job is writing a calendar product. I'm currently re-writing the entire product as an API. Something as simple as "Create a new event" has taken months of
by Osiris 14y ago
My day job is writing a calendar product. I'm currently re-writing the entire product as an API. Something as simple as "Create a new event" has taken months of work (when you save an event you have to update recurrences, alarms, attendees, etc.)
Our legacy code has an event save method that's a few thousand lines long. It's the one part of the code that we avoid at all costs because a seemingly minor change can break some weird edge case.
We also have a CalDav module that works but also has weird edge cases when different calendars handle things in different ways. For example, you have an event that starts on a Monday, set to repeat on Wed and Fri for 10 occurrences. Do you display the Monday occurrence of the original event even though it's not in the recurrence rule? If so, does it count as one of the 10 occurrences or not? In our testing, iCal, Google Calendar, and Outlook all handle this same case in completely different ways.
- tracker1 14y agoI don't blame you.. I had to work on an access request system, and the SLA/Scheduling bits were nightmarish with huge swaths of hard to follow code... I finally got so frustrated I spent a 15 hour straight period pretty much ripping out the majority of said logic and had it all in UTC from front to back, and had any "local" conversions client-side... there was still a bunch of code in place to handle weekends, and holidays (which don't count against SLA), but this really wasn't timezone dependant so much. Can't imagine what a pain a full on calendar project would be.. I looked at CalDAV at one point, because I wanted something that ran outside of Apple's OS early on, but pretty much dropped the idea less than a week into it.