Продолжаем работать с Гугл календарь и в этом уроке по Гугл таблицам мы поговорим о синхронизации данных в Гугл календарь. Как сделать так, чтобы данные на задваивались. Как удалять данные.
На прошлых уроках мы с Вами научились импортировать и экспортировать данные в google календарь.
Если пропустили, то обязательно посмотрите данные уроки. Это важно.
Импорт данных из Гугл календаря
Экспорт данных в Гугл календарь
Часто при использовании синхронизации с Гугл календарем возникает такая проблема, как задвоение записей. Прямой функции синхронизации нет. Мы должны с Вами это реализовать, например через промежуточное удаление не нужных или задвоенных записей.
Посмотрите мой урок, в котором я предлагаю Вам два способа решения данной проблемы.
Вы можете скачать файл с исходными данными и скриптами
Обратите внимание, что Вы должны сохранить копию файла себе, для того чтобы стало возможным вносить изменения. Так-же необходимо в скрипте изменить имя календаря. По умолчанию программа будет пытаться вносить изменения в мой календарь.
Скрипты, которые используются:
Функция импорта
function calendarimp() {
var cal = CalendarApp.getCalendarById(“howtomake@gmail.com”);
var spreadsheet = SpreadsheetApp.getActive();
var teklist = spreadsheet.getSheetByName(‘Лист2’);
var table = SpreadsheetApp.getActiveSpreadsheet().setActiveSheet(teklist);
spreadsheet.getRange(‘A5:E1000’).activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
var datn = table.getRange(1,1).getValue();
var datk = table.getRange(1,2).getValue();
var dann = cal.getEvents(datn, datk);
for (var i=0; i<dann.length;i++){
var title = dann[i].getTitle();table.getRange(i+5, 3).setValue(title);
var vrn = dann[i].getStartTime();table.getRange(i+5, 1).setValue(vrn);
var vrk = dann[i].getEndTime();table.getRange(i+5, 2).setValue(vrk);
var loc = dann[i].getLocation();table.getRange(i+5, 4).setValue(loc);
var prim = dann[i].getDescription();table.getRange(i+5, 5).setValue(prim);
}
}
Функция синхронизации и экспорта
function calendarexp() {
var cal = CalendarApp.getCalendarById(“howtomaker@gmail.com”);
var spreadsheet = SpreadsheetApp.getActive();
var teklist = spreadsheet.getSheetByName(‘Лист2’);
var table = SpreadsheetApp.getActiveSpreadsheet().setActiveSheet(teklist);
var datn = table.getRange(1,1).getValue();
var datk = table.getRange(1,2).getValue();
var dann = cal.getEvents(datn, datk);
for (var i=0; i<dann.length;i++){
dann[i].deleteEvent();
}
var dlinna = table.getLastRow();
for (var i=5; i<dlinna+1;i++){
var title = table.getRange(i,3).getValue();
var datn = table.getRange(i,1).getValue();
var datk = table.getRange(i,2).getValue();
var mesto = table.getRange(i,4).getValue();
var primech = table.getRange(i,5).getValue();
cal.createEvent(title,datn,datk,{location:mesto,description:primech});
}
}