我在Google Apps脚本方面的经验非常有限,但是已经成功修改了https://developers.google.com/apps-script/quickstart/forms中的代码,几乎可以满足我的所有需求。
需要知道如何在我的日历上查看所有签署日期的客人。
我已经研究了CalendarApp选项,但是无法格式化任何格式的文件,以使在特定日期填写Google表单的任何人的名字都显示在该日期的日历上-可能是作为来宾或出席者?
var cal = CalendarApp.getOwnedCalendarById(XXX);
for (var i = 1; i < values.length; i++) {
var session = values[i];
var title = session[0];
var start = joinDateAndTime_(session[1], session[2]);
var end = joinDateAndTime_(session[1], session[3]);
var options = {location: session[4], sendInvites: true};
var event = cal.createEvent(title, start, end, options)
.setGuestsCanSeeGuests(false);
session[5] = event.getId();
}
range.setValues(values);
var schedule = {};
for (var i = 1; i < values.length; i++) {
var session = values[i];
var day = session[1].toLocaleDateString();
var time = session[2].toLocaleTimeString();
if (!schedule[day]) {
schedule[day] = {};
}
if (!schedule[day][time]) {
schedule[day][time] = [];
}
schedule[day][time].push(session[0]);
}
// Create the form and add a multiple-choice question for each timeslot.
var form = FormApp.create('2019-2020 Semester 1 Sign up');
form.setDestination(FormApp.DestinationType.SPREADSHEET, ss.getId());
form.addTextItem().setTitle('Name').setRequired(true);
form.addTextItem().setTitle('Email').setRequired(true);
form.addTextItem().setTitle('Phone Number').setRequired(false);
for (var day in schedule) {
var header = form.addSectionHeaderItem().setTitle('Odysseys on ' + day);
for (var time in schedule[day]) {
var item = form.addMultipleChoiceItem().setTitle(time + ' ' + day)
.setChoiceValues(schedule[day][time]);
}
}
}
答案 0 :(得分:0)
我看到您想确保您的活动中添加了合适的客人。阅读评论后,我可以看到Altigraph将您带入了正确的轨道。下面是您需要的语法(我假设“值”是指用户对表单的特定响应):
要在createEvent()
选项中添加邀请对象,请执行以下操作:
for (var i = 1; i < values.length; i++) {
var session = values[i];
var title = session[0];
var start = joinDateAndTime_(session[1], session[2]);
var end = joinDateAndTime_(session[1], session[3]);
var options = {location: session[4], sendInvites: true,
guests: email,
};
var event = cal.createEvent(title, start, end, options)
session[5] = event.getId();
}
您可以在表单中向用户请求此email
,就像您获得他们的姓名或电话一样,如果您直接使用Google表单,则可以选择使用this method来获取用户的电子邮件。
或者,要使用addGuest()
,一旦创建了日历(即在此代码段末尾具有“事件”对象),您只需使用event.addGuest(email);
,其中电子邮件与在另一个选项中。其文档位于this link