Добавление события в календарь с помощью скрипта Google Apps - ошибка при расчете времени окончания более чем через час после запуска - PullRequest
0 голосов
/ 05 марта 2019

У меня есть простое приложение, в котором пользователи заполняют некоторые основные сведения о встрече в листе Google, а затем экспортируют их в свой календарь Google.Сценарий выглядит следующим образом:

function exportEvents() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var headerRows = 1;  
  var range = sheet.getDataRange();
  var data = range.getValues();
  // var calId = sheet.getRange("H2:H2").getValue();
  var calId = "xxxxxxxxxxxx";
  var cal = CalendarApp.getCalendarById(calId);

  for (i=0; i<data.length; i++) {
    if (i < headerRows) continue; 
    var row = data[i];
    var date = new Date(row[1]); 
    var title = row[2];          
    var initial = row[0];
    var concatTitle = initial + " - " + title;
    var tstart = new Date(row[3]);
    tstart.setDate(date.getDate());
    tstart.setMonth(date.getMonth());
    tstart.setYear(date.getYear());
    // var tstop = new Date(row[4]);
    var tstop = new Date(tstart + row[4]);
    tstop.setDate(date.getDate());
    tstop.setMonth(date.getMonth());
    tstop.setYear(date.getYear());
    var loc = row[5];
    var desc = row[6];
    var id = row[7];              
    try {
      var event = cal.getEventSeriesById(id);
    }
    catch (e) {
      // do nothing - we just want to avoid the exception when event doesn't exist
    }
    if (!event) {
      var newEvent = cal.createEvent(concatTitle, tstart, tstop, {description:desc,location:loc}).getId();
      row[7] = newEvent;  
    }
    else {
      event.setTitle(concatTitle);
      event.setDescription(desc);
      event.setLocation(loc);
      var recurrence = CalendarApp.newRecurrence().addDailyRule().times(1);
      event.setRecurrence(recurrence, tstart, tstop);
    }
    debugger;
  }
  range.setValues(data);
}

Все это прекрасно работает, за исключением случая, когда пользователь помещает более 60 минут в качестве продолжительности собрания в столбце 4. Все до 59 минут работает отлично, и событиезарегистрировано с правильным временем начала и окончания.Однако, когда я ввожу 60 или более минут, ошибка гласит: «Время начала события должно быть раньше времени окончания события».

Я уверен, что делаю что-то очень простое, очень неправильное, но любая помощь будетс благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...