Предположим, я создаю повторяющееся событие, которое начинается в понедельник в 9 утра и заканчивается в 11 утра, это событие повторяется каждый день в течение 3 дней. Теперь я хочу (после того, как я создал события с использованием повторения), чтобы изменить время начала события во вторник, оставив другие события без изменений, как я могу это сделать?
Я могу легко получить правило повторения для этой серии событий, используя расширенный API календаря, он возвращает что-то вроде
RRULE:FREQ=DAILY;COUNT=3
Это правило можно изменить по желанию, чтобы изменить все события (и я также могу обновлять события, используя patch
, но не только для одного события. Я попробовал API tryout, чтобы получить каждый экземпляр этой серии событий, и я действительно могу видеть каждое время начала и окончания (* см. ниже ), но я не нашел способа получить это с помощью Calendar API в Google Apps Script.
Я не нашел способа изменить конкретный экземпляр, т.е. записать обратно измененные значения.
Поскольку я могу сделать это вручную в веб-интерфейсе календаря, я думаю, что смогу сделать это с помощью сценария, но я действительно не знаю, как это сделать.
Код, который я использую для получения параметров события, довольно прост:
...
for(var n = 1 ; n < data.length ; n++){
if(data[n][9] == ''){continue};
var advancedID = data[n][9].substring(0,data[n][9].indexOf('@'));
Logger.log(advancedID+'\n');
ChangeEventRecurrence(calID,advancedID);
}
}
function ChangeEventRecurrence(calID,advancedID){
var event = Calendar.Events.get(calID, advancedID);
Logger.log(event.recurrence+'\n'+JSON.stringify(event));
// here I should be able to get all the instances of this eventSeries and change them if needed
}
Вот снимок экземпляра, который я получаю с помощью пробной версии API: