[英]Create dynamic list of attendees in Google Apps Script calendar event
尝试将逗号分隔的电子邮件地址列表添加到 Google Apps 脚本,以便通过电子邮件向这些人发送新日历事件。
似乎我可以使用该格式静态包含电子邮件
attendees: [
{email: 'alice@example.com'},
{email: 'bob@example.com'}
],
但我无法弄清楚如何获取 csv 字符串并将这些条目转换为电子邮件地址列表。
var calId = 'xxxx@resource.calendar.google.com';
var event = {
sendNotifications: true,
sendUpdates: "all",
summary: summary,
start: {
date: eventDate
},
end: {
date: eventDate
}
};
var adds = response.getResponseText();
if( adds.length > 0 ){
//Create Mail List
var addresses = adds.split(',');
for( var i=0; i < addresses.length; i++){
var addee=addresses[i].trim();
Logger.log(addee);
event.attendees.push( "email: "+addee);
}
event = Calendar.Events.insert( event, calId, {sendNotifications: true}
);
在我看来,您的问题可能来自:
event.attendees = new List<EventAttendee>();
...
event.attendees.email=addee;
根据我的理解,这个数组将为空,并且可能无法以这种方式添加电子邮件......我没有尝试过,但这段代码看起来更好:
ArrayList<EventAttendee> attendees = new ArrayList<EventAttendee>();
...
attendees.add(new EventAttendee().setEmail(addee)); // in the loop
...
event.setAttendees(attendees);
我知道已经晚了,但也许答案可以帮助其他人。 您需要做两件事: 1. 您需要在“事件”中添加参与者作为属性 ID,以便当您尝试推送元素时,它不会显示“未定义”。 像这样的东西:
var event = {
summary: subject,
location: dir,
description: (part1+'\n'+part2linebreak),
start: {
dateTime: start.toISOString()
},
end: {
dateTime: end.toISOString()
},
attendees: [
],
// Red background. Use Calendar.Colors.get() for the full list.
colorId: 11
};
与会者已创建,但它是空的。
2.现在我们像这样将数据输入到“与会者”中:
for(var i=0; i<mailist.length; i++){
event.attendees.push({email: mailist[i]});
}
至少我是这样做的:) 也 sendUpdates: "all" 或 sendNotifications: true 去事件之外,像这样:
event = Calendar.Events.insert(event, calid,{senUpdates: "all"});
干杯
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.