Me gustaría eliminar el evento del calendario de 2 posibles calendarios. Trato de definir 2 ID de calendario usando OR || pero si la identificación del calendario devuelve nulo en el primer intento, el evento de eliminación se convierte en un error. ¿Alguien puede ayudar?
var calendarId = "calendarID1" || "calendarID2" ; var eveId = 2; //var typeId = 3; function deleteEvent() { var sheet = SpreadsheetApp.getActiveSheet(); var rows = sheet.getDataRange(); var numRows = rows.getNumRows(); var values = rows.getValues(); var lr = rows.getLastRow(); var eventID = sheet.getRange(lr, eveId, 1, 1).getValue(); //var type = sheet.getRange(lr, typeId, 1, 1).getValue(); var cal = CalendarApp.getCalendarById(calendarId); var event = cal.getEventSeriesById(eventID); event.deleteEventSeries(); }Descripción
Algunas cosas sobre mis preferencias de codificación primero. Siempre envuelvo mi código en un bloque try{} catch(err){} . De esa manera, si cometo un error de codificación, aparece y si hay un error durante la ejecución durante la prueba, aparece en la transcripción de ejecución. Si está probando a través del editor de secuencias de comandos, puede reemplazar Logger.log con console.log. En segundo lugar, evito las variables globales. También eliminé parte de su código redundante.
Su código var calendarId = "calendarID1" || "calendarID2" ; daría como resultado calendarId = false, no una identificación. En su lugar, use una matriz para contener ambos Id. Luego use un Array.forEach() para recorrer los Id como se muestra a continuación.
Código.gs
function deleteEvent() { try { var calendarIds = ["calendarID1","calendarID2"]; var eveId = 2; var sheet = SpreadsheetApp.getActiveSheet(); var rows = sheet.getDataRange(); var lr = rows.getLastRow(); var eventID = sheet.getRange(lr, eveId, 1, 1).getValue(); //var type = sheet.getRange(lr, typeId, 1, 1).getValue(); calendarIds.forEach( calendarId => { let cal = CalendarApp.getCalendarById(calendarId); let event = cal.getEventSeriesById(eventID); if( event) event.deleteEventSeries(); } ); } catch(err) { Logger.log(err); } }Referencia