That sounds like a classic timezone issue. Allday appointments don't really need timezone information, but lots of client still include them.
And when a client then parses it, that wants to use a different timezone you end up with an appointment that is shown over multiple days because it starts at e.g. 1:00 and not 0:00 because of the timezone.
Calendars are not as easy as they look.
