javascript - 我的 GAS 脚本无法创建没有任何错误的事件

标签 javascript typescript google-apps-script google-calendar-api

问题

我想制作一个从特定电子邮件创建事件的脚本,我成功了。当我运行它时,它已完成,没有异常。但我的实际日历上没有出现任何事件。 我认为我的代码没有错误。我想知道是否需要配置一些身份验证设置来创建事件。 如果您能教我解决这个问题的方法,我将不胜感激。

我尝试了什么

  • 我检查过我可以通过 GAS 读取事件。
  • 我阅读了我想要从 GAS 收到的电子邮件。
  • 我检查了默认日历 ID 是否正确,结果是正确的。

代码和控制台日志

代码和输出如下。

function myFunction() {
 var event = CalendarApp.getDefaultCalendar().createEvent(
   "test", 
   new Date("2021", "02", "20", "10", "05"),
   new Date("2021", "02", "28", "10", "30"));
 console.log('Event ID: ' + event.getTitle() + ' is created');
}
5:52:52 PM  Notice  Execution started
5:54:17 PM  Info    Event ID: test is created
5:52:53 PM  Notice  Execution completed

最佳答案

解释/问题

您正在尝试创建一个从 2 月 20 日到 2 月 28 日的事件。

  • 问题是您的日期对象定义不正确。

您还可以阅读here :

JavaScript counts months from 0 to 11. January is 0. December is 11

因此,对于二月,new Date 对象中的第二个参数应该是 1 而不是 2。或者换句话说,您的代码现在创建三月的事件。

如果您去到了三月,当您尝试多次执行代码时,您现在可能已经创建了多个事件。

解决方案:

更改:

new Date("2021", "02", "20", "10", "05"),
new Date("2021", "02", "28", "10", "30")

致:

new Date("2021", "01", "20", "10", "05"),
new Date("2021", "01", "28", "10", "30")

参数不一定是字符串,也可以使用数字(整数):

function myFunction() {
 var event = CalendarApp.getDefaultCalendar().createEvent(
   "test", 
   new Date(2021, 01, 20, 10, 05),
   new Date(2021, 01, 28, 10, 30));
 console.log('Event ID: ' + event.getTitle() + ' is created');
}

奖金信息:

要查看是否有正确的日期对象,您还可以 console.log 您的日期。例如,您的代码给出了三月的日期:

function myFunction() {
  console.log(new Date(2021, 02, 20, 10, 05));
  console.log(new Date(2021, 02, 28, 10, 30));
}

哪个日志:

enter image description here

关于javascript - 我的 GAS 脚本无法创建没有任何错误的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66397270/

相关文章:

javascript - 如何通过 javascript 或 jquery 获取准确的当前城市名称?

javascript - 我应该使用哪些 HTML5 Canvas 工具来构建纸牌游戏?

javascript - qTip(jQuery 插件)如何删除页面中的所有 q 提示?

Javascript 三元运算符链接错误

javascript - 从 TypeScript 定义导入解析和拒绝函数类型

google-apps-script - 是否可以使用 Apps 脚本添加归因于 Google 文档中特定文本的评论?

javascript - Google Scripts 电子表格脚本 : function within for loop does not fully execute before loop finishes

google-apps-script - 突出显示重复项并复制到新工作表

javascript - Ajax 功能不适用于移动浏览器

javascript - 带 typescript 的 Protractor 中的下拉菜单