Apps Script CalendarApp createAllDayEvent 创建事件,但它只在日历中显示 "To:"
Apps Script CalendarApp createAllDayEvent creates event but it only displays "To:" in the calendar
我想根据电子表格中的数据将活动添加到我的 Google 日历中。事件的名称及其日期将来自电子表格。
这是我要处理的table:
function myFunction() {
var spreadsheet = SpreadsheetApp.getActiveSheet();
var calendarID = spreadsheet.getRange("D1").getValue();
var eventCal = CalendarApp.getCalendarById(calendarID);
var dates = spreadsheet.getRange("A1:B11").getValues();
var date = dates[0][0];
var event = CalendarApp.getDefaultCalendar().createAllDayEvent(date,new Date('3-19-2020'));
for(x = 0; x < dates.length; x++) {
}
}
但即使我尝试在没有循环的情况下执行所有这些操作,我也会得到以下结果:
CalendarApp Class 的 createAllDayEvent(title, startDate, endDate)
方法的第一个参数是 title
,它必须是字符串数据类型。 JavaScript 值可以有不同的数据类型。它们可以是 string
,或 object
,或 Boolean
,或 number
,或 date
。在使用 typeof
检查数据类型时,日期被评估为一个对象。如果 date
的值是日期,那么它是 title
参数的错误数据类型。您可以使用 typeof putSomethingHere
确定数据类型所以,我会检查 date
的数据类型,并在需要时将其转换为字符串。
if (typeof date === 'object') {
timeZone = Session.getScriptTimeZone();//Enter your timezone here
date = Utilities.formatDate(date, timeZone, "yyyy-MM-dd");//Formats the date to a string
}
根据您发布的data table
,A1
和B1
似乎是您的headers电子表格,当您尝试创建事件时,您正在使用 dates[0][0]
参数创建 var date
,该参数基本上由 headers.
表示
您可以改为更新范围,以便不包括 headers,如下所示:var dates = spreadsheet.getRange("A2:B11").getValues();
或 调用 dates
变量像这样,跳过 headers: dates[1][0]
.
参考
我放弃了这个想法,开始了同样的 "project" 我更熟悉的 Java。
我想根据电子表格中的数据将活动添加到我的 Google 日历中。事件的名称及其日期将来自电子表格。
这是我要处理的table:
function myFunction() {
var spreadsheet = SpreadsheetApp.getActiveSheet();
var calendarID = spreadsheet.getRange("D1").getValue();
var eventCal = CalendarApp.getCalendarById(calendarID);
var dates = spreadsheet.getRange("A1:B11").getValues();
var date = dates[0][0];
var event = CalendarApp.getDefaultCalendar().createAllDayEvent(date,new Date('3-19-2020'));
for(x = 0; x < dates.length; x++) {
}
}
但即使我尝试在没有循环的情况下执行所有这些操作,我也会得到以下结果:
CalendarApp Class 的 createAllDayEvent(title, startDate, endDate)
方法的第一个参数是 title
,它必须是字符串数据类型。 JavaScript 值可以有不同的数据类型。它们可以是 string
,或 object
,或 Boolean
,或 number
,或 date
。在使用 typeof
检查数据类型时,日期被评估为一个对象。如果 date
的值是日期,那么它是 title
参数的错误数据类型。您可以使用 typeof putSomethingHere
确定数据类型所以,我会检查 date
的数据类型,并在需要时将其转换为字符串。
if (typeof date === 'object') {
timeZone = Session.getScriptTimeZone();//Enter your timezone here
date = Utilities.formatDate(date, timeZone, "yyyy-MM-dd");//Formats the date to a string
}
根据您发布的data table
,A1
和B1
似乎是您的headers电子表格,当您尝试创建事件时,您正在使用 dates[0][0]
参数创建 var date
,该参数基本上由 headers.
您可以改为更新范围,以便不包括 headers,如下所示:var dates = spreadsheet.getRange("A2:B11").getValues();
或 调用 dates
变量像这样,跳过 headers: dates[1][0]
.
参考
我放弃了这个想法,开始了同样的 "project" 我更熟悉的 Java。