日历事件未从应用程序脚本添加

问题描述 投票:0回答:1

我在 Apps 脚本中有以下代码,用于在将条目添加到 google 工作表时创建日历事件,我关注了 Youtube 视频,代码就像只是更改了条目编号。

运行脚本时不断出现以下错误:

8:05:58PM 错误
异常:参数 (String,String,String,String,(class),(class)) 与
CalendarApp.Calendar.createEvent.
(匿名)@ Code.gs:9
createCalendarEvent 的方法签名不匹配@Code.gs:8

代码:

function createCalendarEvent() {
  let pawsomedogCalendar = CalendarApp.getCalendarById("[email protected]");
  let sheet = SpreadsheetApp.getActiveSheet();

  let schedule = sheet.getDataRange().getValues();
  schedule.splice(0,2);

  schedule.forEach(function(entry) {
    pawsomedogCalendar.createEvent(entry[40],entry[3],entry[4],entry[42],entry[43],entry[44]);
  });
}

谷歌表链接: https://docs.google.com/spreadsheets/d/13GuDYE2tRWbwhA2o3M9mAfL0AGh7zfAdFalIQ8HSCQQ/edit?usp=sharing

google-sheets google-apps-script google-sheets-formula google-calendar-api
1个回答
0
投票

在 Google 日历中创建活动

为了使用 Google 日历创建活动,必须满足这些特定参数。

createEvent(title, startTime, endTime)

根据您提供的代码,参数使用不正确。此外,由于您将日期和时间值引用到 Google Sheets 中的数据,因此在使用之前需要将其转换为 Date 对象。在此代码中,直接传递值,这将导致错误或意外行为,因为 createEvent 方法无法直接处理日期和时间的字符串输入。

这是您可以使用的更新后的代码。

function createCalendarEvent() {
 let pawsomedogCalendar = CalendarApp.getCalendarById("[email protected]"); //Please insert the correct Calendar ID
 let sheet = SpreadsheetApp.getActiveSheet();

 let schedule = sheet.getDataRange().getValues();
 schedule.splice(0,1); // Since you only have 1 header row in your provided sheet, you only have to remove one.

 schedule.forEach(function(entry) {
   var title = entry[40];
   //Converting the String cell values into Date objects
   var startDate = new Date(entry[43]);
   var endDate = new Date(entry[44]);

   pawsomedogCalendar.createEvent(title, startDate, endDate);
 });
}

欢迎访问这些公共文档和视频以供参考:

  1. 创建事件
  2. 拼接
  3. 获取日历ID的视频
© www.soinside.com 2019 - 2024. All rights reserved.