使用 Google 应用脚本在工作表中创建日历事件并希望添加与会者
Creating calendar event in sheets using Google App Script and want to add attendees
我正在尝试使用 Google 应用程序脚本在 sheet 秒内创建日历事件(我对此很陌生)。 sheet 包含事件的详细信息(日期、时间、事件标题和来宾列表)以及日历 ID(这是一个培训日历)。我想让 end-user 简单地填写 sheet 上的信息,单击 'schedule now' 和脚本 运行 并将事件发送到所有提到的电子邮件地址在来宾名单中。
这里是 sheet 的例子:
这是代码的副本(我在 Google 开发者网站上找到了它,并试图对其进行调整以添加客人,但一直无法正常工作,而且真的不知道该去哪里有了这个。理想情况下,我希望来宾列表来自 sheet 而不是作为选项写入代码。
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();
}
如果有人可以提供帮助或对如何做得更好有任何想法,我会洗耳恭听!
谢谢!
问题:
电子表格文件中的日期是 strings/texts。你可以验证如果你这样做 =isDate(A7)
。如果后者 returns FALSE
那么您没有有效的日期对象。如果您看到 official documentation,则需要传递日期对象而不是日期文本。
我的另一点是,你的范围是 "A5:C20"
,但你应该从 A7
开始。根据您的屏幕截图,第 5
行和 6
行不包含所需信息。
根据您的评论提出的问题:
how I can include inviting the guests when it's run
再次根据 documentation,您可以使用 高级参数选项 添加来宾,特别是 guests
:
eventCal.createEvent(title, startTime, endTime, {
location: 'remote',
description: 'snacks provided',
guests: 'test1@gmail.com,test2@gmail.com'
})
guests
is a type of string that contains a comma-separated list of email addresses
that should be added as guests.
我正在尝试使用 Google 应用程序脚本在 sheet 秒内创建日历事件(我对此很陌生)。 sheet 包含事件的详细信息(日期、时间、事件标题和来宾列表)以及日历 ID(这是一个培训日历)。我想让 end-user 简单地填写 sheet 上的信息,单击 'schedule now' 和脚本 运行 并将事件发送到所有提到的电子邮件地址在来宾名单中。
这里是 sheet 的例子:
这是代码的副本(我在 Google 开发者网站上找到了它,并试图对其进行调整以添加客人,但一直无法正常工作,而且真的不知道该去哪里有了这个。理想情况下,我希望来宾列表来自 sheet 而不是作为选项写入代码。
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();
}
如果有人可以提供帮助或对如何做得更好有任何想法,我会洗耳恭听!
谢谢!
问题:
电子表格文件中的日期是 strings/texts。你可以验证如果你这样做
=isDate(A7)
。如果后者 returnsFALSE
那么您没有有效的日期对象。如果您看到 official documentation,则需要传递日期对象而不是日期文本。我的另一点是,你的范围是
"A5:C20"
,但你应该从A7
开始。根据您的屏幕截图,第5
行和6
行不包含所需信息。
根据您的评论提出的问题:
how I can include inviting the guests when it's run
再次根据 documentation,您可以使用 高级参数选项 添加来宾,特别是 guests
:
eventCal.createEvent(title, startTime, endTime, {
location: 'remote',
description: 'snacks provided',
guests: 'test1@gmail.com,test2@gmail.com'
})
guests
is a type of string that contains a comma-separated list of email addresses that should be added as guests.