How to auto transfer Google Calendar events id into spreadsheets?

52 Views Asked by At

I'm trying to create "event creator" with spreadsheets and I can't figure out something.

Ok, I created some events (like 5 or 6) with sheets, but my problem is when I want to update some information on one of the events and export them - they duplicate. So like I see I need to use events id but I can't figure out how. I tried just this - I used CalendarApp to call events id but it returned null?!

I want one of my columns to be auto-filled with all eventIDs in my calendar and when I need to update or create new to prevent duplicates. Can someone help with an idea for this?

1

There are 1 best solutions below

0
On

Copying Next Years Events from Calendar to a Dialog and a Spreadsheet

Hopefully this script will help you to get a start on your project. Don't forget to add your calendar id to line 4.

function getCalendarEventsForNextYear() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var cal=CalendarApp.getCalendarById("calendar id");//change calendar id
  var startTime=new Date(new Date().getFullYear(),new Date().getMonth(),new Date().getDate()-1);
  var endTime=new Date(new Date().getFullYear()+1,new Date().getMonth(),new Date().getDate());
  var events=cal.getEvents(startTime, endTime);
  var rA=[["ID","Title","Start Date","End Date","Description"]];
  var html="";
  for(var i=0;i<events.length;i++) {
    html+=Utilities.formatString('ID: %s<br />Title: <strong>%s</strong><br />Start Date: <strong>%s</strong><br />End Date: <strong>%s</strong><br />Description:<strong>%s</strong><br /><hr width="30%" align="left" />',events[i].getId(),events[i].getTitle(),Utilities.formatDate(new Date(events[i].getStartTime()),Session.getScriptTimeZone(), "E MMM dd, yyyy"),Utilities.formatDate(new Date(events[i].getEndTime()),Session.getScriptTimeZone(), "E MMM dd, yyyy"),events[i].getDescription());   
    rA.push([events[i].getId(),events[i].getTitle(),Utilities.formatDate(new Date(events[i].getStartTime()),Session.getScriptTimeZone(), "E MMM dd, yyyy"),Utilities.formatDate(new Date(events[i].getEndTime()),Session.getScriptTimeZone(), "E MMM dd, yyyy"),events[i].getDescription()]);
  }
  html+='<br /><input type="button" value="Close" onClick="google.script.host.close();" />';
  var userInterface=HtmlService.createHtmlOutput(html).setWidth(1000);
  SpreadsheetApp.getUi().showModelessDialog(userInterface, "Events for Next Year");
  sh.clear();
  sh.getRange(1,1,rA.length,rA[0].length).setValues(rA);
  sh.getRange(1,1,1,sh.getLastColumn()).setFontWeight("bold");
  sh.autoResizeColumns(1, sh.getLastColumn());
}