Este es el otro video relacionado con la creación de eventos desde una HCG (Hoja de cálculo de Google) en el Calendario de Google usando Google Apps script, conocido como GAS por sus siglas en ingles.
el presente tema pretende abordar los fundamento de la creación de eventos, dejando para despues, taras más elaboradas, la idea pues, es que te vayas familiarizando con la creación de eventos de calendario desde una HCG (Hoja de cálculo de Google) o Google Sheets como la llaman algunos.
Requisitos:
manejar rangos de Google sheets mediante scripts y
usar el método createEvent de CalendarApp ó la aplicación de calendario 😃
usar un bucle for, para crear cada evento de forma dinamica
recuerda que siempre puedes consultar la documentación oficial de las clases y metodos disponibles de la app Calendario: https://developers.google.com/apps-script/reference/calendar
createEvent(title, startTime, endTime)
a continuación vamos a comentar los parámetros a usar según este método:
title.- nos pide un titulo para el evento, en nuestro ejemplo será:Curso de hojas de calculo con Fredy, en este caso debemos cuidar que el dato sea un "string" o cadena de texto, por supuesto , com es obvio nohabrá problemas por que es una cadena de texto
startTime.- requiere una fecha-tiempo de inicio.- elegiremos 26/9/2020 13:00:00 es decir una fecha valida
endTime.-requiere una fecha-tiempo final.-será.-27/9/2020 15:00:00 igualmente una fecha
tal como puede verse en esta imagen
el código es bastante sencillo, establece las variables para cada dato: nombre de la platica, inicio y fecha de termino, toma estos datos del rango A2:C5 de la hoja denominada AGENDA OE.
despues ese array o arreglo de datos (datos = spreadsheet.getRange("'AGENDA OE'!A2:C5").getValues(); ) los pasa por un bucle for para tomar cada dato y mediante createEvent , crea el evento en el calendario.
Aquí el código que hace la magia 😊
este ejemplo tiene 3 funciones
una función onOpen que crea el menú personalizado en la HCG
la función para crear los eventos propiamente "HCG_a_Calendario"
la función para eliminar los eventos
el código termina con un mensaje de alerta que nos avisa que los evento se han creado con éxito en Google Calendar 😃
si el tema fue de utilidad y quieres tener una copia, para una análisis más rápido del codigo y probarlo, puedes pedirla en el video que estará saliendo próximamente:
Síguenos y suscríbete en:
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('📅 Calendario')
.addItem('📆 Crear Eventos', 'HCG_a_Calendario')
.addSeparator()
.addItem('❌ Limpiar Eventos', 'quitarEventos')
.addToUi();
}
function HCG_a_Calendario() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var configCalendar = spreadsheet.getSheetByName("Config");
var calendarId = configCalendar.getRange("A1").getValue();
var eventCal = CalendarApp.getCalendarById(calendarId);
var datos = spreadsheet.getRange("'AGENDA OE'!A2:C5").getValues();
for (x=0; x<datos.length; x++) {
var platica = datos[x][0];Logger.log(platica);
var inicia = datos[x][1];Logger.log(inicia);
var termina= datos[x][2];Logger.log(termina);
eventCal.createEvent(platica, inicia, termina);
}
SpreadsheetApp.getUi().alert("eventos creados exitosamente 👌")
}
function quitarEventos() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var configCalendar = spreadsheet.getSheetByName("Config");
var hojafechas = spreadsheet.getSheetByName("AGENDA OE");
var fechini = hojafechas.getRange("B2").getValue();
var fechfin = hojafechas.getRange("C5").getValue();
var calendarId = configCalendar.getRange("A1").getValue();
var eventCal = CalendarApp.getCalendarById(calendarId);
var eventos = eventCal.getEvents(fechini, fechfin);
for(var i=0; i<eventos.length; i++){
eventos[i].deleteEvent();
}
SpreadsheetApp.getUi().alert("eventos eliminados exitosamente 😉")
}