这是一个“魔法礼物”,因为您是一名教师(我也是)而不是一名程序员(我也不是),希望能满足您的需求。
编辑:我在说明中添加了提交日期/时间
function createCalEvent(e) {
Logger.log(e);
// this will return something like this :
/*
{values=[11/9/2014 22:30:00, serge, test descr, 11/7/2014, Before school | 7:30],
namedValues={Your Full Name=[serge], Work to Make Up=[test descr], Date You Will Make Up Assignment=[11/7/2014],
Makeup Time=[Before school | 7:30], Timestamp=[11/9/2014 22:30:00]}, range=Range, source=Spreadsheet, authMode=FULL}
*/
var cal = CalendarApp.getCalendarById("h22nevo15tm0nojb6ul4hu7ft8@group.calendar.google.com");// replace with the right calendar ID, this one is for test (and is public)
var name = e.namedValues["Your Full Name"][0];
var descr = e.namedValues["Work to Make Up"][0];
var submitTime = e.namedValues["Timestamp"][0];
var date = e.namedValues["Date You Will Make Up Assignment"][0].split('/');
var time = e.namedValues["Makeup Time"][0].split('|')[1].split(':');
Logger.log(name+' '+descr+' '+date+' '+time); // this will return serge test descr 11,7,2014 7,30
var startTime = new Date(date[2],date[0]-1,date[1]);
startTime.setHours(time[0],time[1],0,0);
endTime = new Date(startTime.getTime()+3600000); //assuming event is 1 hour long
Logger.log('start='+startTime+' end='+endTime);
cal.createEvent('name = '+name, startTime, endTime, {'description':descr+' (subimitted on '+submitTime+')'});
}
您必须设置一个触发器(在提交表单时)以在提交表单时触发该功能。
重要提示:不要在未发送表单的情况下从脚本编辑器尝试此代码,否则将无法正常工作!!! (显然,e 将是未定义的)