Este javascript es algo que configuré para usar con Google Calendar. Automáticamente hace sus invitaciones privadas, privadas y codificadas por colores. Esto funciona perfectamente.
Al mismo tiempo, quiero codificar con colores todas las invitaciones que recibo de empresas/socios externos. Esto parece que no puedo hacer que funcione. Probé .includes(), pero requieren cadenas exactas que no tengo. El código actual prácticamente marca todos los eventos en este momento en lugar de los dominios de correo electrónico externos previstos.
function ColorEvents() { var today = new Date(); var nextmonth = new Date(); nextmonth.setDate(nextmonth.getDate() + 31); Logger.log(today + " " + nextmonth); var calendars = CalendarApp.getAllOwnedCalendars(); Logger.log("found number of calendars: " + calendars.length); for (var i=0; i<calendars.length; i++) { var calendar = calendars[i]; var events = calendar.getEvents(today, nextmonth,); for (var j=0; j<events.length; j++) { var e = events[j]; var title = e.getTitle(); var creator = e.getCreators(); var guest = e.getGuestList(); if (!creator.indexOf(/@company.net|@partner.nl|@daughtercompany.net/)) { e.setColor(CalendarApp.EventColor.PALE_BLUE); } if (creator.includes("myemail@company.net") &&!title.includes("Lunch") ) { e.setColor(CalendarApp.EventColor.PALE_GREEN); } if (creator.includes("wife@gmail.com") || guest.includes("wife@gmail.com")) { e.setColor(CalendarApp.EventColor.PALE_RED).setVisibility(CalendarApp.Visibility.PRIVATE);; } if (creator.includes("boyfriend@gmail.com")) { e.setColor(CalendarApp.EventColor.PALE_RED).setVisibility(CalendarApp.Visibility.PRIVATE); } if (title.includes("Lunch") || (title.includes("Block"))) { e.setColor(CalendarApp.EventColor.GRAY); } } } }