Creé un script que actualiza el título de los eventos después de que un usuario envía un formulario, según esta condición:
for(var j=0; j<events.length;j++){ var ev = events[j]; if(!ev.getTitle().includes("Returned"){ ...Quiero que el script verifique si hay uno o varios eventos que incluyen el término "Devuelto", pero solo entre los próximos eventos.
Por ejemplo, la condición debería ser falsa si el título de un evento no incluye "Devuelto" Y ninguno de los siguientes títulos de eventos incluye "Devuelto".
¿Es eso posible? Intenté crear una variable evnext = events[j+1] pero, por supuesto, aparece un error una vez que llega al último evento.
Gracias por su ayuda, creo que es muy factible, pero lamentablemente mi comprensión de los bucles es demasiado baja...
Editar: detalles sobre mi objetivo
En realidad, mi guión envía un correo electrónico a todas las personas que tomaron prestado un equipo pero no confirmaron que lo devolvieron.
El problema ahora es que me gustaría enviar un correo electrónico a estas personas, EXCEPTO SI alguien más lo devolvió después.
De hecho, significaría que incluso el primer prestatario no confirmó que lo devolvió, el hecho de que alguien que lo tomó a continuación y lo marcó como devuelto prueba que la primera persona realmente devolvió el equipo.
De lo contrario, no habría sido posible que el siguiente tipo lo devolviera.
Puedes probar el siguiente script:
function listEvents() { let calendar = CalendarApp.getCalendarById("Calendar ID"); // Change the calendar ID var today = new Date(); for(let i=1; i<=30; i++) // 30 days limit { var events = calendar.getEventsForDay(today, {search: 'Returned'}); if(events.length != 0) { MailApp.sendEmail("email@domain.com","Subject","Body"); } today.setDate(today.getDate() + 1); } }En este ejemplo, la secuencia de comandos toma la fecha actual y comienza a verificar día a día de un calendario específico para los próximos 30 días si un evento tiene la palabra "Devuelto" en su título y devuelve Falso si no.
Déjeme saber si esto ayuda. También puedo modificar el script si es necesario. Puedes modificar el límite de 30 días, y la fecha inicial en función de tus necesidades. No olvides cambiar el ID del calendario al que estás usando actualmente para guardar los eventos.
Referencias:
Qué tal esto:
for(var j=0; j<events.length;j++){ var ev = events[j]; if(j < events.length - 1) { if(ev.getTitle().include("Returned") && events[j+1].include("Returned")) {} } else { if(!ev.getTitle().includes("Returned") {} }