0

This question is related to the question asked here, but this example does not use Calendar App, but advanced calendar services

I am stuck on how to prevent duplicates from appearing because getEventSeriesById does not work here.

function onOpen() {
    var sheet = SpreadsheetApp.getActiveSpreadsheet();
    var entries = [{
        name : "Export Events",
        functionName : "exportEvents"
    }];
    sheet.addMenu("Calendar Actions", entries);
};

function exportEvents() {
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Calendar");
    var headerRows = 1;  
    var range = sheet.getDataRange();
    var data = range.getValues();
    var calId = 'MY_ID';
    for (i=0; i<data.length; i++) {
        if (i < headerRows) continue; 

        var row = data[i];
        var date = row[0];
        var endDate = row[1];
        var title = row[2];           
        var desc = row[3];
        var id = row[4];
        var color = row[5];

        var newEvent = {
            summary: title,
            description: desc,
            "start": {
                "date": date
            },
            "end": {
                "date": endDate
            },
            colorId: color
        };

        newEvent = Calendar.Events.insert(newEvent, calId);

        row[4] = newEvent.id

        /* //this bit does not work
        if (id === 1) {
            var delEvent = Calendar.Events.remove(calId, id);
            delEvent.execute;
        }
        */
        range.setValues(data);
    }

}
Community
  • 1
  • 1
  • The latest version of Calendar API (v3) suggests that there's no `remove` method. You can try the [`Events: delete`](https://developers.google.com/google-apps/calendar/v3/reference/events/delete) API call to remove events. – adjuremods Jan 26 '16 at 03:49
  • I am using remove and it's working- I just added a sixth column and added an if for checking if id exists. – user53423103981023 Jan 27 '16 at 01:59

1 Answers1

0

Here's one solution:

function onOpen() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var entries = [{
name : "Export Events",
functionName : "exportEvents"
}];
sheet.addMenu("Calendar Actions", entries);
};

function exportEvents() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Calendar");
var headerRows = 1;  
var range = sheet.getDataRange();
var data = range.getValues();
var calId = 'insert cal id';
for (i=0; i<data.length; i++) {
if (i < headerRows) continue; 
var row = data[i];
var date = row[0];
var endDate = row[1];
var title = row[2];           
var desc = row[3];
var id = row[4];
var color = row[5];
var check = row[6];

var newEvent = {
summary: title,
description: desc,
"start": {
"date": date
},
"end": {
"date": endDate
},
colorId: color
};

newEvent = Calendar.Events.insert(newEvent, calId);

row[4] = newEvent.id

if (check == 1) {
var delEvent = Calendar.Events.remove(calId, id);
} else {
newEvent.execute;
}

range.setValues(data);
}

}