Todd1561
Hi,
are you using the appliance? If I'm not mistaken there the timezone is set to Europe/Vienna (CET). That's the time zone which grommunio-sync uses if an appointment or meeting doesn't have a time zone associated with them. 'TIMEZONE'
in grommunio-sync config.php overrides the server's setting.
For all-day events the mobile devices usually don't send the time zone information, just the timestamp of the midnight in UTC. The clients then adjust that automatically to be all-day event (from midnight to midnight) in their time zone. That's usually fine because you want it to be an all-day event regardless of the time zone you're currently in.
All-day events get tricky when there are attendees in various time zones. E.g. you setup an all-day event with someone in Vienna and Tokyo. For you in New York it's from midnight to midnight, but in Vienna it's from 6AM to 6AM and in Tokyo from 2PM to 2PM otherwise they would miss the meeting by 6 and 14 hours respectively (the time difference may not be accurate all the time, but you get the idea).
Another issue which might occur for events is that the time zone information was not saved. E.g. you create an event at 2PM New York time which is 7PM UTC. grommunio-sync then gets the 7PM UTC timestamp, but because there was no timezone information and the timezone on the server is Europe/Vienna, grommunio-sync adds 1 or 2 hours bias and saves the appointment at e.g. 8PM UTC.
It gets even more complicated with the recurring events when it's necessary to take into account standard and daylight saving changes over multiple time zones. Not every time zone has a daylight saving time, and some time zones have different daylight saving/standard time changes depending on a year.
Finally, there are clients like mobile devices which might not have implemented the time zone handling properly.
I hope that explains a bit why the calendaring it's not so easy to nail down 🙂