Google apps script Google脚本-从Google工作表中的单个单元格向日历事件添加多个来宾
我有一个谷歌电子表格,我们正在使用它向多个帐户发送单个日历事件。代码如下。每当我试图从中提取的单元格中有多个电子邮件地址时,.addguest就会出现“无效参数”错误(用逗号分隔) 如果单元格中只有一个帐户,但如果同一单元格中有多个帐户以逗号列出,则以下代码将正确提取 所有想法都受到赞赏 谢谢大家! --德鲁 函数onOpen(){ var s=SpreadsheetApp.getActiveSpreadsheet(); var menuEntries=[{name:“将事件添加到谷歌日历”,functionName:“scheduleClass”}]; s、 添加菜单(“谷歌日历功能”,菜单); } 函数scheduleClass(){ var sheet=SpreadsheetApp.getActiveSheet(); var calendar=CalendarApp.getCalendarById(“primary@group.calendar.google.com"); var title=sheet.getRange('A2:A').getValues(); var startTime=sheet.getRange('E2:E').getValues(); var endTime=sheet.getRange('F2:F').getValues(); var theDescription=sheet.getRange('G2:G').getValues(); var theLocation=sheet.getRange('H2:H').getValues(); var theGuests=sheet.getRange('K2:K').getValues(); 对于(变量i=0;iGoogle apps script Google脚本-从Google工作表中的单个单元格向日历事件添加多个来宾,google-apps-script,google-api,Google Apps Script,Google Api,我有一个谷歌电子表格,我们正在使用它向多个帐户发送单个日历事件。代码如下。每当我试图从中提取的单元格中有多个电子邮件地址时,.addguest就会出现“无效参数”错误(用逗号分隔) 如果单元格中只有一个帐户,但如果同一单元格中有多个帐户以逗号列出,则以下代码将正确提取 所有想法都受到赞赏 谢谢大家! --德鲁 函数onOpen(){ var s=SpreadsheetApp.getActiveSpreadsheet(); var menuEntries=[{name:“将事件添加到谷歌日历”,f
- 您希望创建具有多个来宾的日历事件。
- 在您的情况下,“K”列的值类似于
由sample1@gmail.com,sample2@gmail.com
分隔,
- 活动工作表中“A”、“E”、“F”、“G”、“H”和“K”列的值分别为标题、开始时间、结束时间、描述、位置和来宾
- 在您的情况下,“K”列的值类似于
- 当来宾被
隔开时,您可以使用,
检索每封电子邮件。并且可以使用split()
添加它们addGuest(email)
- 在脚本中,
在循环中发生错误for(var i=0;i
title.length+1
- 当您从“A2:K#”的数据范围中检索值时,可以降低流程成本。和讨论中提到了这一点
CalendarApp
的日历服务。在这种情况下,修改了scheduleClass()
修改脚本:
函数调度类(){
var sheet=SpreadsheetApp.getActiveSheet();
var calendar=CalendarApp.getCalendarById(“primary@group.calendar.google.com");
var values=sheet.getRange(2,1,sheet.getLastRow()-1,11).getValues();
对于(变量i=0;i
模式2:
在此模式中,使用日历API
修改脚本:
使用此脚本时
函数调度类(){
var sheet=SpreadsheetApp.getActiveSheet();
var calendarId=”primary@group.calendar.google.com";
var values=sheet.getRange(2,1,sheet.getLastRow()-1,11).getValues();
对于(变量i=0;i
注:
- 以上两个修改脚本的结果相同
- 您希望创建具有多个来宾的日历事件。
- 在您的情况下,“K”列的值类似于
由sample1@gmail.com,sample2@gmail.com
分隔,
- 活动工作表中“A”、“E”、“F”、“G”、“H”和“K”列的值分别为标题、开始时间、结束时间、描述、位置和来宾
- 在您的情况下,“K”列的值类似于
- 当来宾之间用
分隔时,您可以使用,
检索每封电子邮件,并且可以使用split()
添加它们addGuest(email)
- 在脚本中,
在循环中发生错误for(var i=0;i
title.length+1
- 当您从“A2:K#”的数据范围中检索值时,可以降低流程成本。和讨论中提到了这一点
CalendarApp
的日历服务。在这种情况下,修改了scheduleClass()
修改脚本:
函数调度类(){
var sheet=SpreadsheetApp.getActiveSheet();
var calendar=CalendarApp
function onOpen() {
var s = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [ {name: "Add Events to Google Calendar", functionName: "scheduleClass"}];
s.addMenu("Google Calendar Functions", menuEntries);
}
function scheduleClass(){
var sheet = SpreadsheetApp.getActiveSheet();
var calendar = CalendarApp.getCalendarById("primary@group.calendar.google.com");
var title = sheet.getRange('A2:A').getValues();
var startTime = sheet.getRange('E2:E').getValues();
var endTime = sheet.getRange('F2:F').getValues();
var theDescription = sheet.getRange('G2:G').getValues();
var theLocation = sheet.getRange('H2:H').getValues();
var theGuests = sheet.getRange('K2:K').getValues();
for(var i = 0; i < title.length+1; i++){
if(title[i][0] != ""){
calendar.createEvent(title[i][0], startTime[i][0], endTime[i][0]).addGuest(theGuests[i][0]).setLocation(theLocation[i][0]).setDescription(theDescription[i][0]);
}
}
}
function toString(value){
var newString = "" + value;
return newString;
}
function scheduleClass(){
var sheet = SpreadsheetApp.getActiveSheet();
var calendar = CalendarApp.getCalendarById("primary@group.calendar.google.com");
var values = sheet.getRange(2, 1, sheet.getLastRow() - 1, 11).getValues();
for(var i = 0; i < values.length; i++){
var [title,,,,startTime,endTime,theDescription,theLocation,,,theGuests] = values[i];
if(title != "") {
var event = calendar.createEvent(title, startTime, endTime)
.setLocation(theLocation)
.setDescription(theDescription);
theGuests.split(",").forEach(function(e) {event.addGuest(e.trim())});
}
}
}
function scheduleClass(){
var sheet = SpreadsheetApp.getActiveSheet();
var calendarId = "primary@group.calendar.google.com";
var values = sheet.getRange(2, 1, sheet.getLastRow() - 1, 11).getValues();
for(var i = 0; i < values.length; i++){
var [title,,,,startTime,endTime,theDescription,theLocation,,,theGuests] = values[i];
if(title != "") {
var resource = {
start: {dateTime: startTime.toISOString()},
end: {dateTime: endTime.toISOString()},
summary: title,
description: theDescription,
location: theLocation,
attendees: theGuests.split(",").map(function(e) {return {email: e.trim()}})
};
Calendar.Events.insert(resource, calendarId);
}
}
}