La gran ventaja que tiene Google Workspace sobre Office 365, es la facilidad de conectar las aplicaciones entre si para facilitarnos el trabajo y automatizar nuestros procesos.
Hoy les muestro como crear eventos de Google Calendar desde una base de Google Sheets
Conectarse con Google Calendar desde Google Apps Script
Lo primero que vas a necesitar es el servico CalendarApp.
Este es el que nos conecta con los calendarios, eventos y demás funcionalidades y opciones de Google Calendar
Conectarse con un calendario desde Google Apps Script (opcional)
Cuando abrimos por primera vez nuestra cuenta Google. O cuando entramos por primera vez a Calendar, solo tenemos un calendario, y por defecto todos los eventos que creemos se crearan desde este calendario.
Lo interesante es que podemos crear múltiples calendarios y crear nuestros eventos desde el calendario que queramos.
Para esto vamos a usar el método .getCalendar(idCalendario)
La identificación de nuestro calendario principal es nuestro correo
Para buscar la identifiación de cualquiera de nuestros otros calendarios, buscamos el calendario en la barra izquierda de calendar, y en los tres puntos a la derecha del nombre damos clic sobre «Configuración»
Una vez en la configuración de ese calendario, de nuevo en el panel izquierdo, buscamos la sección «Integrar calendario»
La primera opción de esa sección es la identificación del calendario. Simplemente lo copiamos
Por último creamos una variable a la cual le vamos a asignar el calendario así:
var calendario=CalendarApp.getCalendar("guzman.sheets@gmail.com")
Crear un evento de Google Calendar desde Apps Script
Los eventos de Calendar se crean con el método createEvent(nombre, fecha inicio, fecha fin)
El nombre no tiene misterio, es simplemente una cadena de texto
Las fechas deben ser un objeto Date() de javascript. La verdad suena más complejo de lo que es
Para nuestro primer ejemplo usaremos unas fechas muy sencillas, y poco a poco iremos mirando diferentes maneras de crear las fechas
El evento lo podemos crear desde dos partes:
- Directamente desde CalendarApp, en cuyo caso lo creará desde nuestro calendario predeterminado
- Desde el calendario escogido, que vimos en la sección anterior
Directamente desde Calendar, quedaría así
CalendarApp.createEvent("Nuestro primer evento",
new Date("October 7,2020 15:00"),
new Date("October 7,2020 17:00"))
Desde un calendario específico quedaría así:
var calendario=CalendarApp.getCalendar("guzman.sheets@gmail.com")
calendario.createEvent("Nuestro primer evento",
new Date("October 7,2020 15:00"),
new Date("October 7,2020 17:00"))
Diferentes maneras de trabajar las fechas para crear un evento de Calendar
Ya vimos la primera manera que es Mes día, año hora y segundos, o en notación de formato, seria
new Date(«MMMM D,AAAA, hh:mm»)
Otra manera es con una fecha más sencilla, sin el problema del mes escrito así:
new Date(«DD/MM/AAAA hh:ss»)
Una tercera forma más fácil aun es
new Date(año,mes,dia,hora,minutos)
Conclusión
Como pudiste ver, crear un evento o cita de Google Calendar desde Google Apps Script, no es complejo, aunque hay muchas opciones que aún no hemos tocado
Algún caso específico que quieras explorar?
Hola Juan.
En primer lugar te doy las MUCHAS gracias por tus tutoriales. Todos los que he visto, me han servido y mucho
Lo que necesito hacer es enviar una macro en una fecha y horar determinada.
En los activadores esta la opccion «Desde el Calendario» pero no logro hacerla funcionar.
En la configuracion del activador solo puedo seleccionar «Calendario actualizado» en la seccion …detalles del calendario
Tienes algun tutorial (lo he buscado pero no lo encontre) sobre como utilizar este activador ? o me puedes orientar sobre como seguir ??
Muchas gracias de antemano.
Omar desde Argentina
Hola!
El activador «Desde el Calendario» es para otra cosa. Es para activar cuando se cree un evento
Tienes que usar el de tiempo
Aquí te dejo un video
https://youtu.be/lrQQrOA_uKw
Saludos!
Hola Juan,
¿Cómo puedo crear un evento de calendario tomando las fechas desde un Google Sheets? Me ha dado problemas porque no me reconoce el dato de fecha como Date.
Gracias!
Hola!
Aquí te dejo un video
https://youtu.be/N29MIWRc0mo
Saludos!