1. Always insert all-day event as starting and ending at 00:00 in the server timezone (using it as a flag). Don't convert to the user timezone when retrieving them for display.
2. Use condition start=end for all-day event as suggested by Gustaf (thanks gustaf for this)
3. Fixed the display of events created in another timezone
4. Fixed the display of all-day events