[ПРИМЕЧАНИЕ: обновлено, чтобы лучше отражать понимание проблемы]
Я пытаюсь переместить все события из одного календаря Google в другой, используя Google Scripts.
Я написал следующий код :
function move_all_events()
{
var fromYear = 2016;
var toYear=2020
var fromDate = new Date(fromYear,0,1,0,0,0); //Year, Month (where 0 = Jan, 1 = Feb...), Hour, Min, Sec, Millisecond
var toDate = new Date(toYear,1,0,0,0);
var fromCalendarName = 'Calendar1';
var toCalendarName = 'Calendar2';
// Move from start of fromYear to start of toYear (for month 0 = Jan, 1 = Feb...)
var fromCalendar = CalendarApp.getCalendarsByName(fromCalendarName)[0];
var toCalendar = CalendarApp.getCalendarsByName(toCalendarName)[0];
var fromCalendarId = fromCalendar.getId();
var toCalendarId = toCalendar.getId();
Logger.log(fromCalendarId);
Logger.log(toCalendarId);
var events = fromCalendar.getEvents(fromDate, toDate);
for(var i=0; i<events.length;i++){
var evId = events[i].getId().replace("@google.com", "");
Logger.log(evId); // show event Id in log
Calendar.Events.move(fromCalendarId, evId, toCalendarId);
}
}
Приведенный выше код работает нормально, когда события, которые нужно переместить, были созданы вручную из Календаря Google.
Однако код СБОЙ, когда события должны быть перемещенные были созданы извне в файле ics / ics и затем импортированы в календарь Google.
Когда я запускаю код, я получаю следующую ошибку:
API call to calendar.events.move failed with error: Not Found (line 86, file "Code")
где строка 86 - это строка с Calendar.Events.move.
Обратите внимание, что журнал показывает:
[20-04-24 01:26:15:031 EDT] myname@gmail.com
[20-04-24 01:26:15:032 EDT] asfdsfdsfdsfekwlkkllkpauc700@group.calendar.google.com
[20-04-24 01:26:15:986 EDT] myeventidprefix-a3a597f53ff059959e950fc513df33af
Все кажется «правильным», и действительно, идентификатор события - это именно тот UID, который я создал внешне в файле ics, который Затем я импортировал.
И все же почему-то кажется, что Calendar.Events.move не может найти само событие в fromCalendar.
Есть идеи, что здесь не так?
ВТОРАЯ проблема, которая Я заметил, что даже когда рутина работает (например, для событий, созданных в Календаре Google), «уведомления» не перемещаются. Т.е., если я создаю событие в fromCalendar с уведомлениями, перемещенные события в toCalendar теряют уведомление. Обратите внимание, что ни в календаре вообще не включены уведомления о событиях или «Весь день».
Интересно, что если я перенесу то же событие обратно в fromCalendar, уведомления волшебным образом появятся снова.
Так что любая идея почему уведомления, по-видимому, все еще не повреждены, но не видны вместе с другими данными о событиях