Search code examples
javascriptgoogle-apps-scriptgoogle-calendar-apigoogle-sheets-api

how to automatically add a schedule from Google Sheets into Calendar?


I have tried to implement this code to integrate google calendar with my spreadsheet, but i am fail until now. Follow the code...

function scheduleShifts() {
var spreadsheet = SpreadsheetApp.getActiveSheet();
    var calendarId = spreadsheet.getRange("Dados!CJ3").getValue();
    var eventCal = CalendarApp.getCalendarById(calendarId);
var signups = spreadsheet.getRange("Dados!CI5:CK3500").getValues();
for (x=0; x<signups.length;x++)
{
    var shift = signups[x];
    var startTime = shift[0];
    var endTime = shift[1];
    var volunteer= shift[2];
    eventCal.createEvent(volunteer,startTime,endTime);
}
}

Error message:

21:19:29 Erro Exception: The parameters (String,String,String) don't match the method signature for CalendarApp.Calendar.createEvent. scheduleShifts @ Agenda.gs:12

Based article:

https://cloud.google.com/blog/products/g-suite/g-suite-pro-tip-how-to-automatically-add-a-schedule-from-google-sheets-into-calendar

Can you help me?


Solution

  • Try this:

    function scheduleShifts() {
      var spreadsheet = SpreadsheetApp.getActiveSheet();
      var calendarId = spreadsheet.getRange("Dados!CJ3").getValue();
      var eventCal = CalendarApp.getCalendarById(calendarId);
      var signups = spreadsheet.getRange("Dados!CI5:CK3500").getValues();
      for (x=0; x<signups.length;x++) {
        var shift = signups[x];
        var startTime = new Date(shift[0]);
        var endTime = new Date(shift[1]);
        var volunteer= shift[2];
        eventCal.createEvent(volunteer,startTime,endTime);
      }
    }