Twórz wydarzenia kalendarza Google z arkusza kalkulacyjnego, ale zapobiegaj duplikatom
Próbuję napisać skrypt, który będzie pobierał dane z arkusza kalkulacyjnego Google i tworzył wydarzenia w moim kalendarzu Google.
Udało mi się to dobrze, ale produkował duplikaty za każdym razem, gdy go uruchomiłem. Teraz próbuję temu zapobiec, tworząc kolumnę 17 w arkuszu kalkulacyjnym z automatycznie wygenerowanym unikalnym identyfikatorem zdarzenia dla każdego wiersza, a następnie przy każdym uruchomieniu skryptu będzie on sprawdzał identyfikator zdarzenia dla każdego wiersza i usunie odpowiednie zdarzenie w kalendarzu przed odtworzeniem go z oryginalnymi danymi lub zaktualizowanymi danymi, jeśli zmieniłem wiersz.
Jestem zupełnie nowy w tworzeniu skryptów i brukowałem to razem, ale teraz uderzam w ścianę. Czy ktoś może to rozwiązać?
function CalInsert() {
var cal = CalendarApp.getDefaultCalendar();
var id = SpreadsheetApp.getActiveSheet().getRange(2,17).getValue();
if (id != 0) {
var event = cal.getEventSeriesById(id);
event.deleteEventSeries();
}
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = sheet.getLastRow(); // Number of rows to process
var dataRange = sheet.getRange(startRow, 1, numRows, sheet.getLastColumn());
var data = dataRange.getValues();
for (i in data) {
var row = data[i];
var title = row[0]; // First column
var desc = row[13]; // Second column
var tstart = row[14];
var tstop = row[15];
var event = cal.createEvent(title, tstart, tstop, {description:desc});
var eventid = event.getId();
SpreadsheetApp.getActiveSheet().getRange(2,17).setValue(eventid);
}
}