function getNextEvent_(calendars) {
if (!calendars)
calendars = CalendarApp.getAllCalendars();
const now = new Date();
const end = new Date();
return calendars.map(function (cal) {
var weeks = 4;
end.setTime(now.getTime());
do {
end.setDate(end.getDate() + 7)
var e = cal.getEvents(now, end, {max: 1}).pop();
} while (!e && --weeks);
return cal.getName() + ': ' +
(!e
? 'No visible events up to ' + end.toLocaleString()
: e.getTitle() + ' (Org. by ' + e.getCreators().join(',') + ')'
);
});
}
function logNextEvents() {
console.log({
message: "Upcoming Events",
events: getNextEvent_()
});
}