I made a spreadsheet where I can easily manage my events in my google Calendar. In the spreadsheet Row 1 has the dates, Row 2 has the specifics of the appointment and Row 3 saves the eventId of the event created by the script. Every week starts on a new row.
The script works like it should and looks like this:
function CalenderUpdate() {
  var calId = "xxxxxxxxxxxxxxxx@group.calendar.google.com";
  var descr = "";
  var date
  var titel
  var sheet = SpreadsheetApp.getActiveSheet();
  var Afspraak = sheet.getRange(2,1,3,5).getValues();
  var cal = CalendarApp.getCalendarById(calId);
  for (j=2;j<9;j=j+3){
    Afspraak = sheet.getRange(j,1,3,5).getValues();
    for (i=0; i<5; i++){
      descr ="";
      date = Afspraak[0][i];
      titel = Afspraak[1][i];
      if (titel == "A"){ descr = "Late 14:00 - 21:00";}
      if (titel == "M"){ descr = "Early 6:00 - 14:00";}
      if (Afspraak[1][i] != ""){
        var event = cal.createAllDayEvent(titel,date,{description:descr});
        sheet.getRange(j+2,i+1).setValue(event.getId());
      }
    }
  }
}
Now I want a new function. If I edit something in the schedule, I want it to update in my calendar. So I added a function onEdit that would delete the event if one created on that day, and if necessary create a new. I started with this code to delete the event if something is edited. But it doesn't delete the appointment and I can't figure out why.
function onEdit(e){
  var ss = SpreadsheetApp.getActiveSheet();
  var range = e.range;
  var rij = range.getRow();
  var col = range.getColumn();
  var afspraakId = ss.getRange(rij+1,col).getValue();
  if (rij % 3 == 0) { ss.getRange(1,1).setValue(afspraakId); }
  var calId = "xxxxxxxxxxxxxxx@group.calendar.google.com";
  var cal = CalendarApp.getCalendarById(calId);
  var event = cal.getEventSeriesById(id);
  event.deleteEventSeries();
}
Hope someone can help me?
EDIT:
I changed the onEdit(e) to onEditInstallable(e) but the script never get triggered.
Even if I add a trigger by the menu
What do I do wrong?
EDIT2:
I've done some editing on my script. This is the end result:
function test_onEdit() {
  onEditInstallable({
    user : Session.getActiveUser().getEmail(),
    source : SpreadsheetApp.getActiveSpreadsheet(),
    range : SpreadsheetApp.getActiveSpreadsheet().getActiveCell(),
    value : SpreadsheetApp.getActiveSpreadsheet().getActiveCell().getValue(),
    authMode : "LIMITED"
  });
}
function onEditInstallable(e){ 
  var ss = SpreadsheetApp.getActiveSheet();
  var range = e.range;
  var rij = range.getRow();
  var col = range.getColumn();
  if (rij % 3 == 0 && col < 8) {
    var cal = CalendarApp.getCalendarById("xxxxxxxxxxxxxxxxxx@group.calendar.google.com");
    var event
    var geg = ["","",""];
    var descr ="";
    for (i = 0 ; i < 3 ; i++){ geg[i] = ss.getRange(rij-1+i,col).getValue();}
    if (geg[2] != ""){
      event = cal.getEventSeriesById(geg[2]);
      event.deleteEventSeries();
      ss.getRange(rij+1,col).setValue("");
    }
    if (geg[1] != ""){
      event = cal.createAllDayEvent(geg[1],geg[0],{description:descr});
      ss.getRange(rij+1,col).setValue(event.getId());
    }
  } 
}
The script works if I run the test_OnEdit. But the onEditInstallable doesn't trigger automatic? I'm an amateur in programming and I don't understand much of this page. Hope someone can help me figure this out.
 
     
    