ICalendar
# ICalendar

iCalendar es un estándar (RFC 5545, RFC 5546 y RFC 6868) para el intercambio de información de calendarios. El estándar también se conoce como "iCal", debido al nombre del programa de Apple, que fue la primera aplicación en implementarlo.

iCalendar permite a los usuarios invitar a reuniones o asignar tareas a otros usuarios a través del correo electrónico. El destinatario del mensaje en formato iCalendar (de tener un programa que lo permita) puede responder fácilmente aceptando la invitación, o proponiendo otra fecha y hora para la misma.

Ha sido implementado en una variedad de programas:

* Chandler.
* Evolution de Novell.
* Google Calendar.
* Hotmail Calendar
* Lightning para Mozilla Thunderbird.
* Lotus Notes.
* Mozilla Calendar (incluyendo Mozilla Sunbird).
* KOrganizer.
* Kronolith.
* Microsoft Outlook.
* Mulberry.
* Nuvvo.
* ScheduleWorld.
* Simple Groupware.
* Trac.
* GreyPhillips.

La información en formato iCalendar se transmite por lo general por correo electrónico, aunque el estándar fue diseñado para ser independiente del protocolo de transmisión. Por ejemplo, puede ser compartida y editada utilizando un servidor WebDAV. Un servidor web sencillo (usando tan solo el protocolo HTTP) puede ser usado para distribuir la información de un evento en particular, o de indicar las horas y fechas en que el usuario estará ocupado o libre. Algunos sitios de eventos en la web ya están incorporando iCalendar directamente en las páginas, usando hCalendar, una representación exacta de iCalendar, expresada en estilo XHTML.

## Preliminares de la especificación

La especificación iCalendar es resultado del trabajo del Comité de Calendario y Agendas del IETF (encabezado por Anik Ganguly de Open Text Inc.), y fue redactado por Frank Dawson de Lotus y Derik Stenerson de Microsoft. iCalendar se basa fuertemente en la especificación anterior vCalendar, fruto del Consorcio de Correo de Internet (IMC). Tras el desarrollo de iCalendar, IMC declaró que:

El estándar contempla los siguientes tipos:

* Published Event. Para eventos publicados sin opción de respuesta al convocante.
* Group Event. Para eventos con destinatarios y con interacción entre el organizador y los invitados.
* Busy Time.
* Recurring Event and Time Zone.
* Group To-Do.
* Journal.

La información iCalendar es declarada como tipo de contenido MIME text/calendar. Se debe usar la extensión "ics" para nombrar un archivo que tenga (una cantidad cualquiera de) información de calendario y agenda consistente con este tipo de contenido MIME. La extensión "ifb" se usará para un archivo que tenga información de horario libre/ocupado de acuerdo con este tipo de contenido MIME. El tipo de archivo "iCal" se usa en sistemas operativos Macintosh de Apple para indicar un archivo que contiene información de calendario y agenda de acuerdo con este tipo de contenido MIME. El tipo de archivo "iFBf" se usa en dichos sistemas operativos para indicar un archivo con horario libre/ocupado de acuerdo con este tipo de contenido MIME.

Los archivos iCalendar son archivos de texto llano ASCII, en los cuales cada línea de texto termina en CRLF (carácter hexadecimal 0D0A).

## Suites ofimáticas

Las suites ofimáticas y programas de calendarios suelen tener la opción de exportar los archivos a iCalendar (como es el caso de Microsoft Excel, Microsoft Outlook, Agenda Ofimática de OpenOffice.).

## Ejemplo de fichero .ics

El siguiente fichero es un ejemplo de calendario con dos eventos, el primero de ellos disparará una alarma 10 minutos antes del evento.

