Я пытаюсь получить все события из календаря Google в Google Apps Script и создать отдельные массивы для каждого имени события.Упрощенная версия (пример) массива ответов:
{summary=Name1, start={dateTime=2018-12-03T15:00:00+01:00}, end={dateTime=2018-12-03T23:00:00+01:00}},
{summary=Name2, start={dateTime=2018-12-04T11:00:00+01:00}, end={dateTime=2018-12-04T23:00:00+01:00}},
{summary=Name1, start={dateTime=2018-12-05T07:00:00+01:00}, end={dateTime=2018-12-05T15:00:00+01:00}}
Я не могу понять, как это отфильтровать / разделить (как бы вы это ни называли), чтобы я получил новуюмассив в следующем формате:
РЕДАКТИРОВАТЬ
{Name1=[[2018-12-03, 15, 23, 8.0], [2018-12-04, 11, 23, 12.0], [2018-12-05, 7, 15, 8.0], [2018-12-06, 15, 23, 8.0]], Name2=[[2018-12-11, 7, 16, 9.0], [2018-12-12, 7, 16, 9.0]]}
Идея состоит в том, чтобы затем выполнить итерацию по этому новому массиву и выполнить foreach, чтобы получить список всех датдля отдельных имен.Насколько я понял,
function hoursTally() {
var calendarId = [CALENDAR_ID];
var startDay = 24;
var endDay = 23;
var month = parseFloat(new Date().getMonth()).toFixed(0);
var year = new Date().getYear();
var startDate = new Date( year, month-1, startDay );
var endDate = new Date( year, month, endDay );
var optionalArgs = {
timeMin: startDate.toISOString(),
timeMax: endDate.toISOString(),
showDeleted: false,
singleEvents: true,
orderBy: 'startTime'
};
var response = Calendar.Events.list(calendarId, optionalArgs);
var events = response.items;
events.forEach(function(e){
Logger.log(e);
var name = e.summary;
var eventDateStart = new Date(e.start.dateTime);
var eventDateEnd = new Date(e.end.dateTime);
var startTime = parseFloat(eventDateStart.getHours()).toFixed(0);
var endTime = parseFloat(eventDateEnd.getHours()).toFixed(0);
var theDate = Utilities.formatDate(eventDateStart, 'GMT+1', 'yyyy-MM-dd');
var total = endTime-startTime;
});
}
Каждая попытка зацикливания событий и получения вышеупомянутого формата не удалась: (