【问题标题】:Creating a calendar event from google sheets从谷歌表格创建日历事件
【发布时间】:2020-10-04 07:51:21
【问题描述】:

我正在尝试制作一个脚本,该脚本将从我的谷歌表格中提取以创建谷歌日历活动,但我一直收到此错误:

异常:参数 (String,String,(class)) 与 CalendarApp.Calendar.createAllDayEvent 的方法签名不匹配。 (第 21 行,文件“工作表到日历”)

有谁知道如何解决这个问题?谢谢。

这是我的代码:

function sheets_to_calendar(){


    var eventCal = CalendarApp.getCalendarById("xxx@group.calendar.google.com");
    var Title = SpreadsheetApp.getActiveSheet().getRange('J1').getValue();
  
    var date = new Date();
    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"});
  
}

【问题讨论】:

  • date 必须是日期对象,而不是字符串。只需删除所有无用的日期到字符串部分
  • 就像@Sergeinsas 所说,在错误中您会看到两次字符串,但第二个参数必须是日期。请参阅此文档:developers.google.com/apps-script/reference/calendar/…

标签: google-apps-script google-sheets google-calendar-api


【解决方案1】:

根据createAllDayEvent(title, date, options) 文档,使用的date必须Date 类型的对象。

考虑到这一点,您可以进行以下修改:

var date  = new Date(month + day + ',' + year);

另外,请记住,由于您正在创建一个全天活动,因此只会考虑日期。

参考

【讨论】:

  • 我试过修改!现在我收到此错误:异常:参数 (String,String,(class)) 与 CalendarApp.Calendar.createAllDayEvent 的方法签名不匹配。 (第 21 行,文件“工作表到日历”)
猜你喜欢
  • 2018-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-14
  • 1970-01-01
  • 2013-06-26
相关资源
最近更新 更多