Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

236
Vistas
Appscript de hojas de Google para crear fallas en el calendario

Estoy tratando de crear un calendario a partir de las hojas de Google usando appscript. Estoy usando tratando a continuación y obteniendo un error.

Esto es lo que estoy tratando de hacer. Quiero crear toda la lista de eventos en googlesheets para el calendario, cualquier actualización adicional en la hoja debe actualizar el calendario solo en cualquier entrada/edición reciente en la hoja y solo en ese evento en particular.

Ejemplo: tengo eventos de la fila A2: A15 en hojas de Google, quiero crearlos todos a la vez. Publique que si agrego una nueva fila A16, debería crear un evento de calendario para los detalles de A16. Además, si edito la fila A10, entonces mi calendario existente en A10 debería actualizarse sin enviar spam a otros eventos del calendario.

Solo por contexto: A1 = Título, B1 = Fecha y hora de inicio, C1 = Fecha y hora de finalización, D1 = correos electrónicos de invitados.

Y traté de declarar la variable guest en for loop, no funcionó tan bien. Cualquier sugerencia o recomendación sobre cómo puedo cumplir con esto.

ingrese la descripción de la imagen aquí

 function create_Events(){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName("Calendar"); var last_row = sheet.getLastRow(); var data = sheet.getRange("A1:E" + last_row).getValues(); var cal = CalendarApp.getCalendarById("CALENDARID"); //Logger.log(data); for(var i = 0;i< data.length;i++){ //index 0 = var event = CalendarApp.getDefaultCalendar().createEvent(data[i][0], new Date(data[i][1]), new Date(data[i][2]), {guests: data[i][3]}); Logger.log('Event ID: ' + event.getId()); } }
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Funciona para mi. Agregué una columna con id (eventId) para poder actualizar en el futuro. El id también será un buen indicador para seguir el proceso y evitar duplicados.

 const myCalend = CalendarApp.getCalendarById("############@gmail.com"); const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1'); function createCalendarEvent() { sheet.getDataRange().getValues().forEach((entry, i) => { if (entry[0] != '' && entry[4] == '') { let id = myCalend.createEvent(entry[0], entry[1], entry[2], { guests: entry[3] }).getId(); sheet.getRange(+i + 1, 5).setValue(id) } }); }

ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza Denunciar

0

Prueba algo como esto

 function create_Events() { const ss = SpreadsheetApp.getActive(); const sh = ss.getSheetByName("Calendar"); const vs = sh.getRange("A1:E" + sh.getLastRow()).getValues(); const cal = CalendarApp.getDefaultCalendar(); vs.forEach((r, i) => { if (r[0] && r[1] && r[3]) { cal.createEvent(r[0], new Date(r[1]), new Date(r[2]), { guests: r[3] }); } else { Logger.log(i); Logger.log(JSON.stringify(r)); } }); }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda