[#ICAL] HowTo: Crear un archivo ics

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

image image image Google

Un comentario en “[#ICAL] HowTo: Crear un archivo ics”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *