La versión en inglés de Google Calendar tiene una funcionalidad (Quick Add) que permite añadir eventos describiéndolos tal y como lo haríamos a otra persona (ejem... anglosajona): "Lunch at new restaurant Friday at 1pm".


Bastante cool... pero no está disponible en castellano. Podríamos quejarnos, pero en la Web 2.0 (signifique lo que signifique el "2.0"...) sucede a menudo que en lugar de eso puedes hacer las cosas tú mismo. En este post incluímos un pequeño ejemplo de Quick Add que entiende (un poco de) castellano, como muestra de lo que cualquiera puede hacer con el API de Google Calendar


El API de Calendar esta basado en el protocolo GData para leer y escribir datos en formato XML a través de peticiones HTTP. Esto permite tratar los datos en una gran cantidad de lenguajes de programación. Para este ejemplo, usaremos la librería de Javascript, que ofrece algunas funciones útiles.


Podemos obtener los eventos en un calendario, modificarlos, borrarlos, o añadir eventos nuevos. Para un ejemplo de cómo obtener los eventos de un calendario, puedes ver el código de esta página, que obtiene los eventos de un calendario público. También podemos obtener los de un calendario privado, con la correspondiente autorización. De hecho este post usa prácticamente el mismo código para mostrarte los eventos de tu calendario.


Si haces click en 'Entrar' a continuación, deberás hacer login en tu cuenta de Google (si no lo has hecho aún) y permitir el acceso a tu calendario a esta página. Entonces se te mostrarán tus próximos eventos en el cuadro de abajo. Además, podrás crear nuevos eventos con el cuadro de texto que aparecerá.


Siendo sólo una muestra, tiene una funcionalidad bastante limitada, y sólo entiende eventos de la forma QUÉ [en DÓNDE] CUÁNDO. Ejemplos:

Puedes probar con frases similares en el cuadro de texto. (Sólo entiende eventos para hoy, y el formato de hora debe ser HH:MM con la hora de 0 a 23)

Estos son buenos puntos de partida para empezar a programar con el API de Google Calendar: Google Calendar API: Home, Documentation, Samples, Developer's guide: Javascript, Javascript client library API reference.

Y ahora lo siento pero debo irme. Al estar probando el código se me ha llenado el calendario de asuntos que tengo que atender...