Estoy creando un fichero .ics en C# para adjuntarlo en un email y que el destinatario pueda agregarlo a su Outlook. El problema que tengo es que cuando cambiamos al horario de verano (en España), la fecha que marca como "date start" es una hora posterior a la hora del evento y esto lleva a confusión al usuario.
¿Hay alguna forma de solucionar esto?
El código que tengo es el siguiente:
Código:
En horario de invierno aparece correctamente, pero en horario de verano la fecha de inicio para este caso (una vez abierto el .ics con outlook) aparece: "2015-03-31 14:00:00" y la fecha de fin "2015-03-31 14:30:00".Date startDate = "2015-03-31 13:00:00"; Date endDate = "2015-03-31 13:30:00"; string timezone = "1"; string DateFormat = "yyyyMMddTHHmmssZ"; string s = startDate.AddHours(-1 * (double.Parse(timezone))).ToString(DateFormat); string e = endDate.AddHours(-1 * double.Parse(timezone)).ToString(DateFormat); string iCal = string.Format(@"BEGIN:VCALENDAR VERSION:2.0 METHOD:PUBLISH BEGIN:VEVENT ORGANIZER:MAILTO:{0} DTSTART:{1} DTEND:{2} LOCATION:{3} UID:{4} DTSTAMP:{4} SUMMARY:{5} DESCRIPTION:{6} PRIORITY:5 CLASS:PUBLIC END:VEVENT END:VCALENDAR", email, s, e, location, DateTime.Now.AddHours(double.Parse(timezone)).ToUniversalTime().ToString(DateFormat), summary, description);
Por el momento lo he solucionado poniendo en la descripción una nota que indica que no se ve reflejado el horario de verano, pero esto no es óptimo.
¿Alguien me puede ayudar?
Muchas gracias de antemano.