Как включить исходный цвет при копировании события в Календарь Google с помощью скрипта Apps? - PullRequest
1 голос
/ 02 ноября 2019

Я хочу скопировать целую неделю событий в следующую с помощью Apps-Script вместо выбора варианта повторения при создании вручную события.

Код показан ниже.

Я не могу понять, как получить цвет исходного события и передать его новому событию.

Использование e.setColor, похоже, работает, но как передать цветоригинальное событие?

function batchCopy() {
  var id = '';
  var cal = CalendarApp.getCalendarById(id);
  var startPeriod = new Date('2019-11-04T00:00:00.000Z');
  var endPeriod = new Date('2019-11-05T00:00:00.000Z');
  var events = cal.getEvents(startPeriod, endPeriod);
  for (var i = 0; i < events.length; i++) { 
    var event = events[i];
    var title = event.getTitle();
    var start = tweak(event.getStartTime());
    var finish = tweak(event.getEndTime());
    var e = cal.createEvent(title, start, finish);
    //e.setColor(event.colorId.background);
    Utilities.sleep(1000); 
  }
}

function tweak(date) {
  var tweaked = new Date(date.getTime());
  tweaked.setDate(date.getDate() + 7);
  return tweaked;  
}

Заранее благодарю всех за помощь.

1 Ответ

1 голос
/ 02 ноября 2019
  • Вы хотите скопировать цвет события.

Если мое понимание верно, как насчет этой модификации?

Модифицированный скрипт:

От:
var e = cal.createEvent(title, start, finish);
//e.setColor(event.colorId.background);
Кому:
var e = cal.createEvent(title, start, finish);
e.setColor(event.getColor()); // Modified

Ссылки:

Если я неправильно понял ваш вопрос, и это был не тот результат, которого вы хотите, прошу прощения.

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