Does anyone know a way in an ICS file to specify that all times are written in the local time at the location? I thought that leaving the 'Z' off the end of times, and using the TZID="America/Denver" (for example) in DTSTART and DTEND lines accomplished this, but MS Outlook assumes that all times are in the location's standard time. My events all take daylight savings time into account.
Do I have to rewrite the app so times are in UTC?
Do I have to include a block at the beginning that defines any time zone? This is difficult since I want to support every time zone in the Olson database.
But currently MS Outlook pushes every appointment that's during daylight savings time forward one hour, which is wrong.
Thanks in advance for any help.
I had a very similar problem to this, and I did a lot of research but the solution still isn't the best. I'm not sure why Outlook doesn't handle local times correctly, it makes scheduling local time appointments for other time zones a big hassle. The standard clearly indicates that if no time zone is specified, and the UTC 'Z' character isn't used, then the time should be the same no matter what time zone the receiver is in. However, Outlook doesn't adhere to this, and changes the time depending on the sending client time & receiving client time.
In my case I have a site running which allows certain users to schedule other users for appointments.These users can be located in many different time zones. Luckily for me, the site is specifically hosted in just one time zone. Thus, my solution was to write a simple c# switch statement that offsets the time based on where the receiving user is relative to where the server is. I don't specify a time zone in the .ics file, and I don't mark the time as UTC via the 'Z' character.