Пример, который вы показываете, относится к all day Events (указывая только одну дату для первого случая), применяете ли вы к такому событию или к «нормальному» событию?
В этом последнем случае вы должны указать 2 даты (начало и конец) для первого появления.
Ссылка выше показывает документацию, довольно ясно, об этом ...
Вот пример «впритык», который показывает, как она работает, первая функция создает событие с ежегодной повторяемости начиная с сегодняшнего дня, второй изменяет это повторение будет ежедневно, начиная с сегодняшнего дня ...
Он использует свой календарь по умолчанию
function createTestSerie(){
var cal = CalendarApp.getDefaultCalendar()
if (cal) {
var title = 'Test Event';
var desc = 'Created using Google Apps Script';
var loc = 'Here, there and everywhere...';
var recur = CalendarApp.newRecurrence().addYearlyRule().interval(1)
var start = new Date();
var end = new Date(start.valueOf()+3600*1000);
var event = cal.createEventSeries(title, start, end,recur,{description:desc,location:loc});// event will be every year and last 1 hour
}
}
function modifyRecurrence(){
var cal = CalendarApp.getDefaultCalendar()
if (cal) {
var start = new Date();
var end = new Date(start.getTime()+3600*1000*2);
var events = cal.getEvents(new Date("February 16, 2013 08:00:00 PDT"), new Date("February 19, 2013 08:00:00 PDT"))
for(i in events){
if(events[i].getTitle()=='Test Event'){
var recur = CalendarApp.newRecurrence().addDailyRule().interval(1)
var eventId = events[i].getId()
cal.getEventSeriesById(eventId).setRecurrence(recur, start, end);// now events will be lasting 2 hours evey day starting today
}
}
}
}
EDIT следующий ваш комментарий: это работает точно Сэму е для allDayEvents, здесь модифицированный пример кода:
function createAllDaySerie(){
var cal = CalendarApp.getDefaultCalendar()
if (cal) {
var title = 'All Day Test Event';
var start = new Date();
var desc = 'Created using Google Apps Script';
var loc = 'home';
var recur = CalendarApp.newRecurrence().addYearlyRule().interval(4)
var start = new Date();
var event = cal.createAllDayEventSeries(title, start,recur,{description:desc,location:loc});// event will be every 4 years starting today
}
}
function modifyAllDayRecurrence(){
var cal = CalendarApp.getDefaultCalendar()
if (cal) {
var start = new Date("February 19, 2010 08:00:00 PDT");// here you can choose any date you like that will be the new start date.
var events = cal.getEvents(new Date("February 16, 2013 08:00:00 PDT"), new Date("February 22, 2013 08:00:00 PDT"))
for(i in events){
if(events[i].getTitle()=='All Day Test Event'){
var recur = CalendarApp.newRecurrence().addYearlyRule().interval(1)
var eventId = events[i].getId()
cal.getEventSeriesById(eventId).setRecurrence(recur, start);// now events will occur once a year starting on february 19, 2010 (see screen capture below)
}
}
}
}
Спасибо за ответ, мое дело связано с датой даты рождения, которую я пытался переместить в календарь. Поэтому я говорю о allday событие, начинающееся в указанный день в прошлом без какой-либо даты окончания. Я создаю его с помощью CreateAllDayEventSeries(), который принимает имя, дату начала и повторение. Я бы хотел просто переместить эту серию событий (что означает ВСЕ события, принадлежащие это) в другой день ... без какой-либо указанной даты окончания. Это имеет смысл сейчас? –
Спасибо за ваш комментарий, я отредактировал свой ответ с новым примером, который соответствует вашему используемому случаю –
И теперь я смущен. Ваш пример работал. Затем я должен проверить, что не так в m y code: | –