Forms 从谷歌表单到谷歌日历-日期和时间问题
我正在尝试修改我在网上找到的一个脚本,该脚本似乎使该事件成为一个全天的事件,我不希望这样,我希望它只是表单/电子表格中指定的时间 电子表格位于此处- 这是我正在使用的脚本,但它没有添加Forms 从谷歌表单到谷歌日历-日期和时间问题,forms,google-sheets,Forms,Google Sheets,我正在尝试修改我在网上找到的一个脚本,该脚本似乎使该事件成为一个全天的事件,我不希望这样,我希望它只是表单/电子表格中指定的时间 电子表格位于此处- 这是我正在使用的脚本,但它没有添加 //this is the ID of the calendar to add the event to, this is found on the calendar settings page of the calendar in question var calendarId = "<removed f
//this is the ID of the calendar to add the event to, this is found on the calendar settings page of the calendar in question
var calendarId = "<removed for privacy>";
//below are the column ids of that represents the values used in the spreadsheet (these are non zero indexed)
var startDtId = 4;
var endDtId = 4;
var titleId = 2;
var titleId2 = 3;
var descId = 7;
var tstart = 4;
var tstop = 5;
var formTimeStampId = 1;
function getLatestAndSubmitToCalendar() {
var start = new Date(sheet.getRange(lr,tstart,1,1).getValue());
var end = new Date(sheet.getRange(lr,tstop,1,1).getValue());
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
var lr = rows.getLastRow();
var subOn = "Submitted on :"+sheet.getRange(lr,formTimeStampId,1,1).getValue()+" by "+sheet.getRange(lr,titleId,1,1).getValue();
var desc = "Comments: "+sheet.getRange(lr,descId,1,1).getValue()+"\n"+subOn;
var title = sheet.getRange(lr,titleId,1,1).getValue()+" "+sheet.getRange(lr,titleId2,1,1).getValue();
createEvent(calendarId,title,start,end,desc);
}
function createEvent(calendarId,title,start,end,desc) {
var cal = CalendarApp.getCalendarById(calendarId);
var start = new Date(sheet.getRange(lr,tstart,1,1).getValue());
var end = new Date(sheet.getRange(lr,tstop,1,1).getValue());
var loc = 'Computer Center';
var event = cal.createEvent(title, start, end, {
description : desc,
location : loc
});
};
//这是要将事件添加到的日历的ID,可在相关日历的“日历设置”页面上找到
var calendarId=“”;
//下面是的列ID,表示电子表格中使用的值(这些是非零索引的)
var startDtId=4;
var-endDtId=4;
var-titleId=2;
var titleId2=3;
var-descId=7;
var-tstart=4;
var-tstop=5;
var formTimeStampId=1;
函数getLatestAndSubmitToCalendar(){
var start=新日期(sheet.getRange(lr,tstart,1,1).getValue());
var end=新日期(sheet.getRange(lr,tstop,1,1).getValue());
var sheet=SpreadsheetApp.getActiveSheet();
var rows=sheet.getDataRange();
var numRows=rows.getNumRows();
var values=rows.getValues();
var lr=rows.getLastRow();
var subOn=“提交日期:”+sheet.getRange(lr,formTimeStampId,1,1).getValue()+”由“+sheet.getRange(lr,titleId,1,1).getValue()”;
var desc=“Comments:”+sheet.getRange(lr,descId,1,1).getValue()+“\n”+subOn;
var title=sheet.getRange(lr,titleId,1,1).getValue()+“”+sheet.getRange(lr,titleId,1,1).getValue();
createEvent(日历ID、标题、开始、结束、描述);
}
函数createEvent(日历ID、标题、开始、结束、描述){
var cal=CalendarApp.getCalendarById(calendarId);
var start=新日期(sheet.getRange(lr,tstart,1,1).getValue());
var end=新日期(sheet.getRange(lr,tstop,1,1).getValue());
var loc=‘计算机中心’;
var event=cal.createEvent(标题、开始、结束、{
描述:描述,
地点:loc
});
};
原始文章位于此处:
我似乎根本无法让约会顺利进行。。。如果我使用原始代码,它可以正常工作,但时间是全天,而不是指定的时间。。。我似乎打破了它,试图让它工作。。。任何帮助都将不胜感激……这比我想象的要简单得多。。。我刚刚删除了他的一些台词(那些将小时和分钟设置为0的台词)。一旦我删除了这些台词并更改了一些内容,我得到了以下非常有用的信息:
//this is the ID of the calendar to add the event to, this is found on the calendar settings page of the calendar in question
var calendarId = "alcc.ccenter@gmail.com";
//below are the column ids of that represents the values used in the spreadsheet (these are non zero indexed)
var startDtId = 4;
var endDtId = 5;
var titleId = 2;
var titleId2 = 3;
var descId = 7;
var formTimeStampId = 1;
function getLatestAndSubmitToCalendar() {
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
var lr = rows.getLastRow();
var startDt = sheet.getRange(lr,startDtId,1,1).getValue();
//set to first hour and minute of the day.
var endDt = sheet.getRange(lr,endDtId,1,1).getValue();
//set endDt to last hour and minute of the day
var subOn = "Added :"+sheet.getRange(lr,formTimeStampId,1,1).getValue()+" by: "+sheet.getRange(lr,titleId,1,1).getValue();
var desc = "Comments :"+sheet.getRange(lr,descId,1,1).getValue()+"\n"+subOn;
var title = sheet.getRange(lr,titleId,1,1).getValue()+" - "+sheet.getRange(lr,titleId2,1,1).getValue();
createEvent(calendarId,title,startDt,endDt,desc);
}
function createEvent(calendarId,title,startDt,endDt,desc) {
var cal = CalendarApp.getCalendarById(calendarId);
var start = new Date(startDt);
var end = new Date(endDt);
var loc = 'Computer Centre';
var event = cal.createEvent(title, start, end, {
description : desc,
location : loc
});
};
我的表单有以下列-时间戳、姓名、缺勤、开始、结束、原因、注释。它们不需要是一个单词,但由于我试图遵循的视频示例,我将它们改为一个单词的标题…但是上面的代码创造了奇迹。我不得不修改表单处理日期的方式以适应日历
function createEvent() {
var form = FormApp.getActiveForm();
var cal = CalendarApp.getDefaultCalendar();
var responses = form.getResponses();
var len = responses.length;
var last = len – 1;
var items = responses[last].getItemResponses();
var email = responses[last].getRespondentEmail();
var name = items[0].getResponse();
var bring = items[1].getResponse();
var date = items[2].getResponse();
Logger.log(date);
var replace = date.replace(/-/g,”/”);
Logger.log(replace);
var start = new Date(replace);
Logger.log(‘start ‘+start);
//Logger.log(newStart.getHours());
var endHours = 2+0+start.getHours();
//Logger.log(start.getDay());
var day = start.getDate();
var minutes = start.getMinutes();
var year = start.getFullYear();
var month = start.getMonth();
var hours = start.getHours();
var d = new Date(year, month, day, endHours, minutes);
Logger.log(d);
var event = cal.createEvent(‘Class Party ‘+name+’ brings ‘+bring, start, d)
.addGuest(email)
.setDescription(name+’ you will be bringing ‘+bring+’ to the party.’);
GmailApp.sendEmail(email, name + ’ a Google Calendar invite has been created for you’, name + ’ You filled out the Google Form for the date of ‘ + start + ’. Check your Google Calendar to confirm that you received the invite.\n’);
}
我也尝试过这个教程,虽然看起来简单得多,但它却回击了其他人在视频评论中的错误。。。