Hola!
Hace 2 días tuve la buenaventurada idea de crear un archivo ICS como parte de una app C#. Lo extraño es que cuando buscas en internet, lo primero que vi son ejemplos utilizando automation de Oulook. Esto ya de por sí da miedo, porque además de tener un modelo de seguridad muy restringido, utilizar Office Automation en un server es cosa de suicidas.
Pues bíen, me fui a las fuentes y encontré la definición de Internet Calendar, además de un ejemplo en texto plano como el siguiente:
BEGIN:VCALENDAR VERSION:2.0 PRODID:-//hacksw/handcal//NONSGML v1.0//EN BEGIN:VEVENT UID:uid1@example.com DTSTAMP:19970714T170000Z ORGANIZER;CN=John Doe:MAILTO:john.doe@example.com DTSTART:19970714T170000Z DTEND:19970715T035959Z SUMMARY:Bastille Day Party END:VEVENT END:VCALENDAR
Si creas un archivo en blanco con extensión ICS, lo editas con un editor de texto y pegas este contenido dentro del mismo, … pues ya estás más cerca. Lo que hice fue una pequeña rutina en C# que me genera el contenido del ICS:
1: private const string DateFormat = "yyyyMMddTHHmmssZ";
2:
3: public string GenerateIcsContent(DateTime dateStart,
4: DateTime dateEnd, string email, string location,
5: string summary, string description)
6: {
7: var s = dateStart.ToUniversalTime().ToString(DateFormat);
8: var e = dateEnd.ToUniversalTime().ToString(DateFormat);
9: var iCal = string.Format(@"BEGIN:VCALENDAR
10: VERSION:2.0
11: METHOD:PUBLISH
12: BEGIN:VEVENT
13: ORGANIZER:MAILTO:{0}
14: DTSTART:{1}
15: DTEND:{2}
16: LOCATION:{3}
17: UID:{4}
18: DTSTAMP:{4}
19: SUMMARY:{5}
20: DESCRIPTION:{6}
21: PRIORITY:5
22: CLASS:PUBLIC
23: END:VEVENT
24: END:VCALENDAR", email, s, e, location,
25: DateTime.Now.ToUniversalTime().ToString(DateFormat),
26: summary, description);
27: return iCal;
28: }
luego lo grabo con extensión ICS y iisto !!!
Wikipedia: http://en.wikipedia.org/wiki/ICalendar
Saludos @ Home
El Bruno
Leave a reply to Víctor Sánchez Cancel reply