Google apps script 使用Google应用程序脚本在工作表中创建日历事件并希望添加与会者

Google apps script 使用Google应用程序脚本在工作表中创建日历事件并希望添加与会者,google-apps-script,calendar,google-calendar-api,Google Apps Script,Calendar,Google Calendar Api,我正在尝试使用Google应用程序脚本在工作表中创建日历事件(我对这一点非常陌生)。该表包含事件的详细信息(日期、时间、事件标题和来宾列表)以及日历ID(这是一个培训日历)。我想让最终用户能够简单地在工作表上填写信息,单击“立即安排”,然后运行脚本并将活动发送到来宾列表中提到的所有电子邮件地址 以下是该表的一个示例: 这是一份代码副本(我在Google开发者网站上找到了这个,并尝试将其修改为添加来宾,但未能使其正常工作,并且真的不确定该如何处理。理想情况下,我希望来宾列表来自工作表,而不是作为选

我正在尝试使用Google应用程序脚本在工作表中创建日历事件(我对这一点非常陌生)。该表包含事件的详细信息(日期、时间、事件标题和来宾列表)以及日历ID(这是一个培训日历)。我想让最终用户能够简单地在工作表上填写信息,单击“立即安排”,然后运行脚本并将活动发送到来宾列表中提到的所有电子邮件地址

以下是该表的一个示例:

这是一份代码副本(我在Google开发者网站上找到了这个,并尝试将其修改为添加来宾,但未能使其正常工作,并且真的不确定该如何处理。理想情况下,我希望来宾列表来自工作表,而不是作为选项写入代码中

function scheduleTraining() {

  var spreadsheet = SpreadsheetApp.getActiveSheet();
  var calendarId = spreadsheet.getRange("C3").getValue();
  var eventCal = CalendarApp.getCalendarById(calendarId);
  
  Logger.log(eventCal)
  
  var signups = spreadsheet.getRange("A5:C20").getValues();
 
  for (x=0; x<signups.length; x++) {
    
    var shift = signups[x];
    
    var startTime = shift[0]
    var endTime = shift[1]
    var title = shift[2]
    
    eventCal.createEvent(title, startTime, endTime, {
      location: 'remote',
      description: 'snacks provided',
    })
  }
  
}  

function onOpen(e) {
  SpreadsheetApp.getUi()
      .createMenu('Schedule Training')
      .addItem('Schedule Now', 'scheduleTraining')
      .addToUi();
}
功能计划培训(){
var电子表格=SpreadsheetApp.getActiveSheet();
var calendarId=spreadsheet.getRange(“C3”).getValue();
var eventCal=CalendarApp.getCalendarById(calendarId);
Logger.log(eventCal)
var signups=spreadsheet.getRange(“A5:C20”).getValues();
对于(x=0;西苏群岛:
  • 电子表格文件中的日期是字符串/文本。您可以验证是否
    =isDate(A7)
    。如果后者返回
    FALSE
    ,则您没有有效的日期对象。如果您看到,则需要传递日期对象,而不是日期文本

  • 我的另一句话是,您的范围是
    “A5:C20”
    ,但您应该从
    A7
    开始。根据您的屏幕截图,行
    5
    6
    不包含所需的信息


  • 根据您的评论提出的问题: 我如何包括在运行时邀请客人

    同样根据,您可以使用高级参数选项添加来宾,尤其是
    来宾

      eventCal.createEvent(title, startTime, endTime, {
          location: 'remote',
          description: 'snacks provided',
          guests: 'test1@gmail.com,test2@gmail.com'
        })  
    
    guests
    是一种字符串类型,包含以逗号分隔的电子邮件地址列表 应该作为客人添加


    我可以发现第一个问题。您的电子表格文件中的日期是字符串/文本。您可以验证是否
    =isDate(A7)
    。如果后者返回false,则您没有有效的日期对象。如果您看到了,您需要传递日期
    对象,而不是日期文本。另一个备注是,您的范围是
    “A5:C20”
    但是你应该从
    A7
    开始。第5行和第6行不包含根据你的屏幕截图所需的信息。希望这有帮助。嗨,Jose,谢谢。我已经检查了日期,它们是对象。我已经修改了范围,脚本正在使用日期、时间和标题创建事件。现在我只需要弄清楚如何使用A包括在运行时邀请来宾。我发布了我的答案,但请将您的问题包括在第二个后续问题中。谢谢Marios!抱歉,这是我第一次讨论堆栈溢出。我将添加并查看它是否运行。