Skip to content

Instantly share code, notes, and snippets.

@mwalzer
Last active October 13, 2018 12:59
Show Gist options
  • Save mwalzer/510e98a46163a097a017f89e39216b4c to your computer and use it in GitHub Desktop.
Save mwalzer/510e98a46163a097a017f89e39216b4c to your computer and use it in GitHub Desktop.
/**
* Will add events per row from a spreadsheet in a calendar.
*
* Events are expected to start being described from row 'startRow' on,
* having the time in the first column in HH:MM format (full 24h!), the name of the event in
* second column (empty entries will make the row being ignored), and third and fourth column
* values added each as a line in the event description.
*/
function createCalendarEvent() {
var sheet = SpreadsheetApp.getActiveSheet();
var calendar = CalendarApp.getCalendarById('dd74c3utahtqn0ji20sdqqcsng@group.calendar.google.com'); //ProteinDay2018
var startRow = 2; // First row of data to process - 2 exempts my header row
var numRows = sheet.getLastRow(); // Number of rows to process
var numColumns = sheet.getLastColumn();
var dataRange = sheet.getRange(startRow, 1, numRows-1, numColumns);
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var etime = row[0]; // should be parsed as Date object, will be 1899 - needs to be reset
var categ = row[1];
var speaker = row[2];
var title = row[3];
if ( etime instanceof Date && categ !== null ) {
etime.setFullYear(2018,9,12);
var event = calendar.createEvent(categ, etime, etime, { description: speaker + '\r' + title });
Logger.log('Event ID: ' + event.getId());
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment