Recurring calender invitation was showing one hour off after DST starts

I am sending a request from my .net application(C#) to create recurring meeting invite in outlook. the meeting invite was showing one hour off during day light saving (march 8th 2015 to 1st nov 2015).

remaining time, my calender shows correct time and i am sending below code to outlook calender.

Please note my application source using EST and destination to all the time zones.

code for the same.

BEGIN:VCALENDAR
PRODID:-//Schedule a Meeting
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:20150221T120000Z
DTEND:20150221T123000Z
LOCATION:XYZ, ABC
UID:0c5c9c55-851f-462b-bdf2-48df5991561b
DESCRIPTION;ENCODING=QUOTED-PRINTABLE:Test for UTC Time Zone
SUMMARY:Test for UTC Time Zone
ORGANIZER:MAILTO:myapplication@gmail.com
ATTENDEE;CN="";RSVP=TRUE:mailto:sender@gmail.com.com
RRULE:FREQ=Monthly;COUNT=4;BYDAY=3SA
BEGIN:VALARM
TRIGGER:-PT15M
ACTION:DISPLAY
DESCRIPTION:Reminder
END:VALARM
END:VEVENT
END:VCALENDAR
Jon Skeet
people
quotationmark

This is the problem:

DTSTART: starttime.ToUniversalTime().ToString("yyyyMMdd\\THHmmss\\Z")
DTEND: Endtime.ToUniversalTime().ToString("yyyyMMdd\\THHmmss\\Z")

You're explicitly specifying the start and end times as UTC, and you're never specifying the time zone.

If you want an event to be in a time zone, you should specify the local time instead of a UTC time (so no Z at the end) and a TZID property to specify the time zone. I suggest you export some of your existing events as ical entries to see what those look like.

You can leave the value without any time zone if you want it to be a "floating time" which will be interpreted in whatever the local time zone is.

people

See more on this question at Stackoverflow