Google Apps Scripting

English version of this post.
Recientemente, tuve algunos problemas con mi calendario de Google. Hace unos días cometí un error al intentar importar un calendario personalizado que necesitaba en mi cuenta de Google Calendar.

Los eventos de calendario personalizado se importaron correctamente en mi cuenta de Google Calendar, pero fue demasiado tarde cuando me dí cuenta que el calendario que importé era el equivocado, ohhh, me sorprendió al descubrir que no hay manera de deshacer la larga lista de eventos importados de mi calendario, al menos no de una forma intuitiva como pensé que se podría.

Googleando un poco vi que existe un lenguaje de scripting para google que puede ser usado para manipular entidades de google apps. Encontré una lista de scripts y ejemplos para eventos del calendario, y también me encontré con un script en los foros que he modificado para masivamente eliminar los eventos no deseados de mi calendario. Tengo que decir que tuve suerte de que había un patrón para identificar los eventos no deseados, en este caso, ese patrón fueron los títulos de los eventos, que comenzaron con la misma palabra :), si no hubiera un patrón pudiera ser posible implementar un approach diferente en función de las necesidades.

Aquí está el código JS para eliminar este tipo de eventos, tal vez alguien lo podría encontrar útil,

Para utilizar este código simplemente necesitas copiar/pegar y modificar los parámetros según las necesidades, usando el editor de scripts en línea que se encuentra en http://www.google.com/script/start/ tal vez estaré leyendo mas código de las API’s de google apps si el tiempo lo permite.

google_scripting.js

function deleteEvents() {
var fromDate = new Date(2013,0,1,0,0,0);
var toDate = new Date(2017,0,4,0,0,0);
var calendarName = 'Yohan Jasdid';
var eventStartStr = 'Sunrise';

var calendar = CalendarApp.getDefaultCalendar();
var events = calendar.getEvents(fromDate, toDate);
for(var i = 0; i < events.length; i++){
var ev = events[i];
if (ev.getTitle().substring(0, eventStartStr.length) === eventStartStr) {
Logger.log(ev.getTitle()); // show event name in log
ev.deleteEvent();
Utilities.sleep(100);
}
}
}

¡Saludos! 🙂
-Yohan

Leave a Reply

Your email address will not be published. Required fields are marked *