Я работаю с приложением VCALENDAR.
DateTime end = Convert.ToDateTime(Request.Form["datepicker1"]);
String timeZone = "Asia/Calcutta";
StringBuilder sbICSFile = new StringBuilder();
DateTime dtNow = DateTime.UtcNow;
//String end=endDate.Text;
String summary="eAssist : Ticket Id - "+Session["ticket"].ToString();
String description = txtlong.Text;
sbICSFile.AppendLine("BEGIN:VCALENDAR");
sbICSFile.AppendLine("VERSION:2.0");
sbICSFile.AppendLine("PRODID://ICSTest/");
sbICSFile.AppendLine("CALSCALE:GREGORIAN");
//Event
sbICSFile.AppendLine("BEGIN:VEVENT");
sbICSFile.AppendLine("DTSTART;TZID=" + timeZone + ":"+dtNow);
sbICSFile.AppendLine("DTEND;TZID=" + timeZone + ":"+end);
sbICSFile.AppendLine("SUMMARY:"+summary);
sbICSFile.AppendLine("DESCRIPTION:"+description);
sbICSFile.AppendLine("UID:1");
sbICSFile.AppendLine("SEQUENCE:0");
sbICSFile.AppendLine("END:VEVENT");
sbICSFile.AppendLine("END:VCALENDAR");
Response.ContentType = "text/calendar";
Response.AddHeader("content-disposition", "attachment; filename=eAssistEvent1.1.ics");
Response.Write(sbICSFile);
Response.End();
Он генерирует:
BEGIN:VCALENDAR
VERSION:2.0
PRODID://ICSTest/
CALSCALE:GREGORIAN
BEGIN:VEVENT
DTSTART;TZID=Asia/Calcutta:11/29/2017 6:51:59 AM
DTEND;TZID=Asia/Calcutta:12/3/2017 12:00:00 AM
SUMMARY:eAssist : Ticket Id - 11
DESCRIPTION:HTML Content inside text boxes
UID:1
SEQUENCE:0
END:VEVENT
END:VCALENDAR
Но когда я открываю вложение в Outlook, начальная и конечная даты меняются (для обеих всегда требуется текущее время).
Мой хостинг-сервер расположен в Восточном часовом поясе, и я получаю доступ к этому приложению из Индии, и на данный момент это приложение предназначено только для Индии.
Как получить точную дату начала и окончания в календаре Outlook на основе индийской локали?