Ical: Internet calendar
Internet Calendaring and Scheduling Core Object Specification, or iCalendar
Permite la captura y el intercambio de información , normalmente alojada en una aplicación de calendario y horarios.
Enlaces importantes:
- https://icalendar.org/
- Validador de Ical: Ical validator (de los mejores en internet)
- Documentación: Documentación de Ical
- Recursos de ICalendar: iCalendar resources,
- Icalendar en Wikipedia:
- Protocolo de ICal en pdf:
Historia:
Lotus Notes (IBM) y Microsoft necesitaban estandars comuntes para operar entre productos de calendario diferentes. De ahí se extiende a calendarios en web y en móviles. Posteriormente fué refinado por Oracle .
Hoy ICalendar se usa para importar y sincronizar eventos en diferentes plataformas, incluidas Microsoft Office 365, Apple Calendar, Google Calendar, y Yahoo Calendar.
Muchos alojamientos usan Google Calendar para llevar la anotación de las reservas, y exportarlas a diferentes portales.
Plataformas que usan ICal para importar y sincronizar reservas incluyen Airbnb, Booking, Tripadvisor, Homeaway y otras muchas más.
En España, paulatinamente lo van incorporando portales como EscapadaRural, Clubrural, Casasrurales.net, Tuscasasrurales.com…..
Cómo funciona
Se trata de «publicar» un archivo con la información en una url «pública», es decir, a la que se puede acceder. Esto permite que una aplicación pueda acceder a ver la información publicada e incorporarla a su propio calendario.
Es como si el calendario se colocara en un «tablón de anuncios» un tanto escondido en la calle, y se le indicara a la aplicación la dirección exacta (URL) donde está el calendario para que pase a mirarlo.
El formato de ICalendar está pensado para datos situados en el tiempo, pero no dice que hacer con esos datos. Es ahí donde otras aplicaciones, como Aloja360 deben negociar como trabajar con esos datos ( reservas).
URI : Identificador Uniforme de Recursos
Specifications for iCalendar and related protocols
Algunos parámetros de mi interés:
La extensión de archivo ics es para archivos que contienen calendarios
UID: Unique ID: UID
Puede ser un identificador, pero debe de ser globalmente único. Ten en cuenta que al sincronizar con otros calendarios ha de ser también único en esos otros calendarios. Si usas un ID en un evento que ya existe, el calendario actualizará el existente.
Existe una función uniqid()
que puede usarse en PHP que puede ayudar a crear un identificador global único.
Ejemplo de ical:
Consiste en un archivo de texto
BEGIN:VCALENDAR VERSION:2.0 PRODID:-//admin.booking.com\, b.v.//NONSGML v1.0//EN CALSCALE:GREGORIAN METHOD:PUBLISH BEGIN:VEVENT DTSTART;VALUE=DATE:20230803 DTEND;VALUE=DATE:20230806 UID:fd5e5355d139c075914b77f823b@booking.com SUMMARY: CLOSED - Not available END:VEVENT BEGIN:VEVENT DTSTART;VALUE=DATE:20230810 DTEND;VALUE=DATE:20230813 UID:61dbe447d701bd84e7dc8dd4@booking.com SUMMARY: CLOSED - Not available END:VEVENT BEGIN:VEVENT DTSTART;VALUE=DATE:20230816 DTEND;VALUE=DATE:20230822 UID:f304708b5ca2857dafaa8b6afd@booking.com SUMMARY: CLOSED - Not available END:VEVENT END:VCALENDAR
Comienza con «BEGIN:»
y termina con «END:».
El cuerpo debe incluir las propiedades del calendario:
«PRODID» y
«VERSION» para la versión del formato . VERSION 2.0 es para la versión de 2016
Además debe incluir al menos un calendario
«VCALENDAR» es una sección global que engloba las demás.
«VEVENT» para eventos,
«VTODO» para to-do, por hacer.
«VJOURNAL» para entradas de journal,
«VTIMEZONE» información de zona horaria.
Las secciones se pueden repetir, por ejemplo: pueden existir mútiples «VEVENT» para describir eventos múltiples. En este caso reservas de clientes.
Si se necesita enviar una cancelación de un evento, la UID debería de ser como el evento original, y la propiedad del componente establecerlo en «cancel»
METHOD:CANCEL STATUS:CANCELLED
Para enviar una actualización UPDATE
de un evento, la UID
deberá coincidir con la UID
original y la propiedad del componente es:
SEQUENCE:<Num of Update>
p.e., para esta actualización:
SEQUENCE:1
Enlaces: https://stackoverflow.com/questions/14085326/whats-wrong-with-this-ical-calendar
La Zap Cal PHP Library
Para escribir Ical con php
La Zap Cal Library es una fuente libre PHP library para leer y escribir archvos iCalendar.
- Puede descargarse en GitHub https://github.com/zcontent/icalendar
- La Documentación API puede encontrase en: http://iCalendar.org/zapcallibdocs