Calendarios ICS compartidos con PHP

·

CalendarioHace unos días que vengo haciendo pruebas con algo que ya había visto, pero no sabía cómo conseguir «por mi cuenta». Servicios como Google Calendar, Yahoo! Calendar y demás te permiten que, si tienes un calendario con ellos, obtengas una URL privada la cuál puedes usar en tu programa calendario (iCal, Mozilla Calendar…) de forma que puedas tener tu calendario en cualquier sitio. Digamos que viene a ser como un «calendario IMAP» 😉

La cuestión es que como ya no dependo de ninguno de estos servicios, ahora sólo tenía el calendario en mi portátil, pero no disponible en ningún otro lugar. Así que me decidí a investigar cómo podría tener calendarios en la red y que se pudieran modificar desde donde yo quisiera.

Es por esto que llegué al software phpiCalendar, que básicamente lo que hace es convertir un ICS (que lleva toda la información del calendario) a modo web/html.

La cuestión es que una vez tengamos instalado este software siguiendo sus instrucciones, podremos encontrar una carpeta donde se almacenan varios calendarios junto a un fichero llamado publish.php.

Tan simple como poner en la configuración la variable $phpicalendar_publishing a 1, guardar un calendario que ya tengas creado y subirlo por FTP a esa misma carpeta, darle permisos de escritura al fichero ICS (al calendario o calendarios que hayamos subido) y voilà.

Ahora, tenemos dos opciones:

  1. Modo Sólo Lectura:
    http://ejemplo.es/calendarios/calendars/calendario.ics
  2. Modo Lectura/Escritura:
    http://ejemplo.es/calendarios/calendars/publish.php/calendario.ics

¡Y ya está! Así de simple, sencillo y rápido. La única cosa de este sistema es que sólo permite un usuario y clave, por lo que sólo podremos tener los calendarios de una única persona… Aunque supongo que revisando el código fuente y haciendo unas mejoras se podría extraer del phpiCalendar un spin-off que sólo permita hacer esto: hosting de calendarios ICS.

Comments

Deja una respuesta

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