Ical, internet calendar, para alojamientos

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:

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. 

Tabla de contenidos