Reputation: 21
I'm working on a google apps script to retrieve event data from a google sheet.
I keep getting this error: "Exception: The parameters (String,String,(class)) don't match the method signature for CalendarApp.Calendar.createAllDayEvent. (line 21, file "sheets to calendar")."
Any suggestions on the cause of the problem?
function sheets_to_calendar(){
var eventCal = CalendarApp.getCalendarById("[email protected]");
var Title = SpreadsheetApp.getActiveSheet().getRange('J1').getValue();
var date = new Date(month + day + ',' + year);
var year = date.getYear();
var month = date.getMonth() + 1; if(month.toString().length==1){var month =
'0'+month;}
var day = date.getDate(); if(day.toString().length==1){var day = '0'+day;}
var hour = date.getHours(); if(hour.toString().length==1){var hour = '0'+hour;}
var minu = date.getMinutes(); if(minu.toString().length==1){var minu = '0'+minu;}
var seco = date.getSeconds(); if(seco.toString().length==1){var seco = '0'+seco;}
var date = year+'·'+month+'·'+day+'·'+hour+'·'+minu+'·'+seco;
Logger.log(date);
var description = SpreadsheetApp.getActiveSheet().getRange('F13').getValue();
eventCal.createAllDayEvent(Title, date, {description: "test"});
}
Upvotes: 1
Views: 1017
Reputation: 27348
date
object as the second argument, not a string
.string
.To create a date object in javascript you have multiple ways, but since you want to define specific month
, date
and year
you should use this one:
var date = new Date(year, month-1, day)
Keep in mind that the parameter month
starts from 0
. If you want to pass 24th of October 2020
you need to do:
var date = new Date(2020, 9, 24)
function sheets_to_calendar(){
var eventCal = CalendarApp.getCalendarById("[email protected]");
var Title = SpreadsheetApp.getActiveSheet().getRange('J1').getValue();
var date = new Date(year, month-1, day);
var description = SpreadsheetApp.getActiveSheet().getRange('F13').getValue();
eventCal.createAllDayEvent(Title, date, {description: description});
}
function sheets_to_calendar(){
var event = CalendarApp.getDefaultCalendar();
var date = new Date(2020, 9, 24);
var Title = 'this is a title';
var description = 'this is a description';
event.createAllDayEvent(Title, date, {description: description});
}
Upvotes: 1