I am using a script in the that pulls events details from a calendar and adds them into column A and B in a spreadsheet, remove any duplicate events and then sort based on date. My hope is then that I can have staff add additional data about these events in columns C,D, etc.
This seems to be working fine, but once information is added in columns C,D the scripts de-duplication function stops working because it is comparing the full row and not simply the content being imported.
Is there a method to adjust the below de-duplication script to only check columns A and B when deciding if rows are duplicate and should be removed?
I have attempted to use the code (currently commented out) adjustment below as found in the variation section in this article: https://developers.google.com/apps-script/articles/removing_duplicates - but it still does not seem to work.
Thank you for any assistance
The Script:
enter code here
//this section retrieves the information from a calendar from a user submitted date until the end of the year
function importEvents(){
var calID = Browser.inputBox("Please enter your google Cal ID", Browser.Buttons.OK_CANCEL);
var startdate = Browser.inputBox("Start date using 1/1/2013 format", Browser.Buttons.OK_CANCEL);
var cal = CalendarApp.getCalendarById(calID);
var events_sheet = SpreadsheetApp.getActiveSheet();
var events = cal.getEvents(new Date(startdate), new Date("1/1/2014"));
var lr = events_sheet.getLastRow();
var eventarray = new Array();
var i = 0; // edited
for (i = 0; i < events.length; i++) {
line = new Array();
line.push(events[i].getStartTime());
line.push(events[i].getTitle());
//Potential more data that I am not getting at this time
// line.push(events[i].getDescription());
// line.push(events[i].getEndTime());
eventarray.push(line);
}
events_sheet.getRange("A"+(lr+1)+":B"+(lr+i)).setValues(eventarray);
//sort ascending dy date
var range = SpreadsheetApp.getActiveSheet().getRange("A3:F2000");
range.sort([{column: 1, ascending: true}]);
//removes duplicate rows
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
var newData = new Array();
for(i in data){
var row = data[i];
var duplicate = false;
for(j in newData){
if(row.join() == newData[j].join()){
duplicate = true;
//This was supposed to only check the first 2 columns, but it doesn't work
//I found this code in the variation section of this tutorial: https://developers.google.com/apps-script/articles/removing_duplicates
//
// if(row[0] == newData[j][0] && row[1] == newData[j][1]){
// duplicate = true;
}
}
if(!duplicate){
newData.push(row);
}
}
sheet.clearContents();
sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);
}