I\'m creating an ics file using ASP.NET for importing holiday into Outlook 2007 and trying to set the all-day-event flag. This works fine on multi-day holidays, but for sing
anmari's answer appears to be the most accurate for current version of both calendar and Outlook365. If one puts in a start and end that are the same, it goes into Calendar as a midnight event and it goes into Outlook365 as an all day event that ends the day before it starts. The only way for it to work with both is for the end date to be one day later than the start. Plus, don't include the DTSTAMP and put the DTSTART and DTEND in the date format not the date time format.
found the answer. to make an all day event you need to make the appointment end at midnight the day after.