Creación avanzada de eventos de Google Calendar desde Google Sheets
HTML-код
- Опубликовано: 13 сен 2024
- Hoy vemos como crear eventos de Google Calendar con duración personalizada, invitados, invitaciones, ubicación y descripción, todo desde Google Sheets
👍 Si te ha gustado este video, te encantará el curso gratis "Aprende Google Sheets en 2 horas". Aquí puedes obtener acceso juansguzman.co...
📋 Puedes encontrar el código y la plantilla de este video (y los más de 350 videos del canal) inscribiéndote en un plan mensual o anual en mi membresía JuanSGuzman - juansguzman.com
🎓Allí mismo, encontrarás una serie de cursos de Integración de Google Calendar y Google Sheets, asi como más de 75 cursos completos de Sheets, Forms y Apps Script. Aquí puedes verlo juansguzman.co...
📝 Puedes encontrar este tutorial en forma escrita aquí
juansguzman.co...
☎️ Si necesitas asesoría personalizada, ofrezco algunas horas a la semana de este servicio. juansguzman.co...
🔔 Suscríbete al canal donde recibirás nuevos videos semanales de Sheets, Forms, Apps Script y más.
Aquí algunos canales donde me puedes seguir y apoyar:
📨 - Newsletter: juansguzman.co...
➤Patreon: juansguzman.co...
➤Telegram: juansguzman.co...
➤Instagram: juansguzman.co...
ⓕ - Facebook: juansguzman.co...
➤Tiktok: juansguzman.co...
𝕏 - (Twitter): juansguzman.co...
Cualquier sugerencia, pregunta o inquietud, te invito a comentar más abajo
Eres el mejor!
Hola!
Que amables palabras! Mil gracias!
Saludos!
Voy a revisar tus videos anteriores para complementar este. Ya que lo que quiero es que cada vez que se reciba una respuesta de un formulario se cree automáticamente el calendario, enviando las invitaciones pero sobre todo que realicen varias notificaciones, bien sea por correo o notificación móvil y si se seleccionar el calandario entre todos los que tengo, eso seria fantabulozo!
Jaja, yo creo que se puede
Saludos!
Hola, lo pudiste resolver?
Me sirvio un monton, realmente muy bien explicado, yo tengo una app en glide y uso sheets como base, y cuando hago un cambio en en la app y como lo hace en el sheets, se ejecuta el appscript, genial me funciono
Excelente!
Espectacular como siempre Juan! Una ventaja que encontré en uno de tus tutoriales anteriores de este tema fue enviar con el check al final como activador ya que el botón que agregaste acá no aparece en Google sheets de celular.
Muchas gracias por retomar el tema, quedamos a la espera de la parte 2. Saludos 💪💪
Hola!
Que amables palabras! Mil gracias!
Saludos!
VIDEOS ANTERIORES DE CALENDAR 👇
PARTE 1 - ruclips.net/video/NJSu56fsW7U/видео.html
PARTE 2 - ruclips.net/video/ENrf8USt4_w/видео.html
PARTE 3 - ruclips.net/video/N29MIWRc0mo/видео.html
Gracias!
Muy bien explicado muchas gracias. Una pregunta, se puede crear un calendario desde el mismo script y a ese calendario agregarle estos eventos? Espero hacerme entender.
Claro que si
En el CalendarApp hay una opción de createCalendar()
Saludos!
Interesante, estaba esperando algo como esto.
Excelente!
Hola hice todo, pero ahora quiero que me tome toda la columna, no solo 1, como hago? gracias
Hola
Aquí te dejo un video donde lo hago
ruclips.net/video/N29MIWRc0mo/видео.html
Saludos!
Buenas tardes, en primer lugar felicitarme de nuevo por sus Videos.
Respecto a este vídeo,como podríamos elegir el id del calendario. Tengo varios calendarios compartidos, por departamentos, y necesitaría elegir en qué calendario crear el evento.
Muchas gracias por compartir sus conocimientos y hacernos la vida un poco más fácil!
Hola!
Mil gracias por tus palabras
Seria algo asi
var calendario=CalendarApp.getCalendarById(TU_ID)
calendario.createEvent....
Saludos!
Gracias por tu valioso aporté.. me gustaría saber si es posible hacer que Los datos que Google Form envía al Sheet, se programen automáticamente en Calendar. Por ejemplo: hacer una cita por medio de Google Form.. y que el resultado se refleje automáticamente en mi Calendar
Hola!
Si se puede
Saludos!
Excelente, muchas gracias por el video! Podrías hacer en el próximo video como eliminar solamente lo seleccionado o la selección única de la celda? Para no borrar cosas que no se deseen y como bloquear cuando ya hay un evento creado en el mismo horario?
Hola!
Claro que si
Ya lo anoto
Saludos y gracias por la sugerencia!
Excelente Juan!! Siempre ácudo a tu canal para avanzar en mis proyectos! Cada video es excelente!!! Solo tengo un tema que no encuentro en ningún canal, y es el poder programar Out of office de días de descansos de un Grupo de personas, es decir , declinar meeting, y que realmente salga como Oit of office, tendrás algún vídeo que me regales el link?
Interesante
Nunca lo he hecho pero lo pongo "en la cola"
Saludos!
Gracias
Hola!
Gracias a ti por tomarte el trabajo de comentar!
Saludos!
Hola, Juan. Y si en lugar de CalendarApp quisiera generar una tarea en Google Tasks, ¿Cuál sería la instrucción? Saludos y gracias por tu contenido! 🎉🎉
Nunca lo he hecho!
Lo dejo de tarea
Saludos!
Hola Juan !! Eres un genioooo total. Muy didáctico !! Muy claro, muy preciso !!! Te felicito !!! Tengo sólo una consulta: he generado una lista de invitados directamente en una celda con los emails, separados por comas. Todo funciona perfecto, pero al modificar el evento, no hay forma de agregar esa celda con los mails separados por coma. Si es uno sólo el .addGuest () funciona, pero con varios concatenados, no. Qué puedo hacer? Debo eliminar el evento? Gracias
Hola Juan, estuve viendo tus videos, tengo un problema al momento de crear el evento, me lo crea un dia antes de la fecha que tengo en mi sheet, sabes que pueda estar pasando? saludos
Hmmm
Que raro, de pronto es la zona horaria. Verifica tanto en la configuración de Sheets como en la configuración de Apps Script que tengas la zona horaria correcta
Saludos!
Hola! Es posible crear eventos de día completo con Google sheet y apps script en calendar?
Pero que se genere en calendar un evento del tipo "todo el día" para que figure arriba en miñatura y no que ocupe espacio en el cuadro temporal general de dicho día.
Yo hice pero poniendo fecha inicial 00:00 a 23:59 pero se vuelve muy engorroso visualmente
Hola!
si no restoy mal hay un metodo especifico para eventos de todo el dia
.createAllDayEvent(title, startDate, endDate)
Saludos!
Hola Juan como estas, estuve siguiendo tu video, pero tengo un problema que no he podido solucionar, me crea el evento un día antes de la fecha que pongo, sabes que puede estar pasando? Saludos
Hmmm
Que raro, de pronto es la zona horaria. Verifica tanto en la configuración de Sheets como en la configuración de Apps Script que tengas la zona horaria correcta
Saludos!
Hola! Genial! Te consulto si se puede crear el evento enviando las invitaciones pero sin Google Meet, no me aparece la función de crear el evento sin incluir google meet. Es posible?
Hola Gerardo
Complicado!
No sabría, pero lo investigo
Saludos!
Holaaa, excelente video super bien explicado, solo que la función crear evento no me generó la pestaña en Google Sheet =( todo se ejecutó bien y no apareció la ventana de Evento, que pudo haber sido?
tendrías que tomar en cuenta donde se ponen las "," o las "."
Hola ten hago una consulta, si quiero tener 2 fechas diferentes con duración? Tienes algún vídeo
muchas gracias.... excelente video.
hay posibilidad de a una reunion establecer una sala de google meet, (podria ser enviada en la invitacion?). Saludos
Hola!
Hmmm
Interesante.
No lo se, pero lo averiguo
Saludos!
Muchas gracias Juan, alguna forma de que no cree el enlace de meet? Saludos!!!!
No sabría como la verdad. No hay ningun médtodi
Saludos!
que buen video, se puede traer la respuesta del invitado si acepta o rechaza la invitación ?
Estan excelentes tus tutoriales amigo, queria preguntarte 2 cosas hay modo de que se ejecuten al abrir el documento de Sheets los comandos para que sea una carga automática y igual que no se dupliquen en calendar los eventos que ya se hayan creado ?
Hola!
Usas onOpen() para esto
Hay que tener cuidado porque algunos servicios no son compatibles con onOpenSaludos!Saludos!sl
@@JuanSGuzman Gracias, el onOpen lo usas como nueva función verdad, estoy trabajando con algo en específico y ya me tope estos temas que el evento se sobre escribe cada que le doy ejecutar y que me gustaría fuera más automático para no depender hacer click recargar la agenda.
@@JuanSGuzman function onOpen(){
crearEventos();
}
function crearEventos() {
}
Esta ejecuta la función pero no de forma automática, igual sigo trabajando para que sea completamente automática me falta el no sobre escribir.
@@KAMPOZONE En los casos de trabajar con CalendarApp lo mejor no es usar onOpen sino el activador al abrirse que creas manualmente. Ahí puedes incluir todas las funciones que quieras
Saludos!
Tengo una pregunta cómo utilizo el echo de colocar un valor a La Fila para poder crear N cantidad de eventos al mismo tiempo ?
Hmmm. Te tocaria usar un bucle
Algo asi como
let numEventos=10
for(i=1;i
Hola Juan, muchas gracias por tanta info de calidad. Quería preguntarte si es posible importar y exportar con referencia a diferentes calendarios. Es decir en mi cuenta de google calendar tengo distintos calendarios creados por área de trabajo (Dinero, familia, Salud, etc), entonces quisiera exportar e importar usando esos calendarios.
Hola!
Claro que si
Usas CalendarApp.getCalendar(idCalendario)
El id del Calendario lo encuentras en la configuración del calendario en la sección "Integrar calendario"
Saludos!
Tip amateur: si buscas crear mas de un evento a la vez y ya hiciste este codigo, solo copia y pegalo debajo de si mismo las veces que necesites 1 por fila con evento nuevo y solo modifica el numero de la fila de c/u y listop
Gracias por el aporte!
Tambien pueden usar este video
ruclips.net/video/N29MIWRc0mo/видео.html
Saludos!
Buenas noches me parece especatacular tu video pero me surge una duda, tengo creado el evento pero si quiero crear diferentes enventos en la misma hoja para despues pasarlos a Calendar tengo que crear una función para cada uno de estos.
Hola, muchas gracias por estos videos, me han ayudado mucho para un problema que tenemos. Me vi todos tus videos sobre este tema para crear una solución pero me veo atrapado en dos temas:
1. Cuando creo todos los eventos no se detiene y sigue creando infinitos eventos aun cuando no hay información para crearlos. No se detiene en la ultima fila con información, hay que detener el script de forma manual.
2. Tengo que tener la hora de inicio y termino en columnas separadas y no logro integrar eso en el código 😫.
Revise tu pagina pero no se si esas dudas se resuelven en tu academia.
Quedare atento para ver si me respondes.
Saludos!
Hola
Respecto a la primera duda
Se puede deber a que tengas algún desplegable o algún arrayformula en la hoja donde tienes los eventos
Saludos!
@@JuanSGuzman si es eso 😅
@@iNachiYoma Excelente!
Hola Juan. Ví tu video esperando que mostraras como adjuntar archivos, ya que es la parte que no he podido resolver en mi caso. Te comparto como lo ingresé en mi código:
var event = Calendar.createEvent(eventTitle, startDate, endDate, {
description: description,
location: location,
guests: installerEmail,
sendInvites: false,
attachments: [{
fileId: fileId,
title: fileName
}]
})
Cabe resaltar que previamente se crearon las variables fielId y fileName las cuales contienen la información correspondiente a sus nombres.
Adicionalmente, quisiera saber si aparte de la suscripcion mensual que vendes para el acceso a tus cursos, tienes otros servicios, como por ejemplo una reunion contigo para revisar como podria optimizar los codigos que he realizado para mis proyectos. Quedo atento, saludos!
Muy simple y práctico. Muchas Gracias!!!
Pregunta: Como podemos elegir un calendario nuestro o compartido con nosotros para agregar esos eventos???
Hola!
con CalendarApp.getCalendarById()
Y creas los eventos en vez de desde CalendarApp, desde el nuevo calendario
var calendario=CalendarApp.getCalendarById()
calendario.createEvent()
Saludos
@@JuanSGuzman excelente, hice los ir me recomiendas y ha funcionado muy bien. Muchísimas gracias por responder y felicitaciones por la increíble labor que haces . 👏👏👏👏
@@rdegollada Excelente!
No va el link del curso Google sheets y Google Calender, hay otra forma de acceder a tus cursos, son muy interesantes
Hola, gracias por tu video, veo que siempre se genera un enlace automático para Google Meet, hay manera de evitar que se genere automáticamente? lo digo porque me gusta usar Google calendar para agendar mis reuniones pero prefiero otra plataforma para las reuniones
Ya logré eliminar la creación del enlace de Meet pero por alguna razón ya no envía las invitaciones a los correos. Alguna idea?
Excelente vídeo, muy descriptivo, pero hay algo que no he podido encontrar y es que si yo quiero enviar a muchos correos a la vez (30 a 50), como haría yo para concatenarlos en una misma celda y que esta celda los tenga separados por comas para que Google Calendar envíe las notificaciones o invite a las personas que quiero. ¿Hay alguna forma de crear un script, por ejemplo, que me permita seleccionar qué correos quiero anexar de una lista determinada y que los concatena en una sola celda para no tener que crear muchas columnas seleccionando correos?
Hola!
Interesante. Así exactamente no tengo nada, pero se que si se podría
Saludos!
@@JuanSGuzman que alternativa tenemos, por qué tocaría agregar 50 columnas para ese fin?
@@8bits_Warrior Se podrían separar por comas en una sola celda. En realidad esa sería la forma más fácil tanto para el Sheets, como para el código
Saludos!
Hola sr. Juan, he seguido toda esta serie y ahora tengo un problema que no sé resolver.
Mi celda de invitados son nombres y no direcciones de correo, pero tengo una hoja secundaria para la validación de datos en la que tengo asociados nombres con e-mails.
¿Como podría crear un nuevo array en el que se vayan incluyendo los e-mails de los invitados en base a la celda donde aparecen sus nombres separados por comas, a la hora de crear cada evento?
Si pudiera ayudarme se lo agradecería mucho. Un saludo.
Esta compleja
Primero te toca separar los nombres con comas, puedes usar un split
Despues usas un forEach por el arreglo resultante del split y a cada uno vas a buscar el mail
PAra buscar el mail traes el arreglo donde estan los mails, lo conviertes a lista con map
A ese arreglo le haes un indexOf con cada nombre
El arreglo resultante es el que vas a incluir en addGuests()
Saludos!
@@JuanSGuzman muchas gracias por la atención. Los nombres ya están separados por comas. Le echaré un vistazo enseguida a como implementar esas indicaciones que me sugieres. Un abrazo.
P.D. me están resultando de gran ayuda tus videos con la creación de un proyecto de una agenda laboral con múltiples eventos diarios para uno o varios empleados. Así que de nuevo, mil gracias por la dedicación. 😉
Hola!
Gracias a ti por tomarte el trabajo de comentar!
Saludos!@@el_david6139
Con eso te aparecen recordatorios también ???
Si lo tienes programado como default en tu calendario
Saludos!
@@JuanSGuzman Gracias, voy a investigar. Seria bueno que envíe un email del calendario
@@roquefabian por ahora solo envía el email de invitación, pero lo tendré en cuenta para la parte 2 (si la hay)
Saludos!
@@JuanSGuzman Eso sería un golazo! Muchas gracias
Buenas Juan, ¿sabes si hay un límite de activadores que puede tener asociados un archivo o una cuenta de Gmail?, actualmente tengo varios y me llegan correos de que se excedió el tiempo de ejecución, sin embargo, siempre se han ejecutado de manera correcta
Yo creo que no necesitas tants. A veces puedes agrupar todo lo de un activador en una sola función
Saludos!
@@JuanSGuzman esque necesito que se ejecuten en tiempos distintos
@@oscar_urp Pero si cada activador es diferente, el tiempo es independiente. Deberias mirar en que activador exactamente te esta dando el error. De pronto no es roblema de los activadores, sino de la funcion
Saludos!
@@JuanSGuzman veo que el problema que mencioné se presenta solamente en activadores que mandan correos electrónicos, puede que ese sea un factor, aunque curiosamente tengo uno que tiene la misma estructura y lógica y no me da problemas
@@oscar_urp Mandan muchos correos?
i como separo la hora de inicio de la fecha de inicio :/ me gustaría poner lo en otra casilla
Algo así
function crearEvento() {
Logger.log(calendario.getTimeZone())
var hoja = libro.getActiveSheet();
var nombre = hoja.getRange("A2").getValue();
var fechaIni = hoja.getRange("B2").getValue();
var horaIni=hoja.getRange("C2").getValue();
fechaIni.setHours(horaIni.getHours()+1)
var fechaFin = hoja.getRange("D2").getValue();
var horaFin=hoja.getRange("E2").getValue();
fechaFin.setHours(horaFin.getHours()+1)
calendario.createEvent(nombre, fechaIni, fechaFin)
}
Hola Juan, te hablé por facebook pero no estoy segura si te llegan los mensajes. Por favor tendras algun numero de whatsappo o un email para consultar por tus servicios. Gracias desde ya.