0

我希望在提交表单时创建日历事件。用户正在输入一个日期,我希望使用Google Apps脚本在特定的日历中创建一个活动,该活动于上午9点开始,并于下午5点结束。创建日历事件 - 自定义时间 - Google Apps脚本

我知道我可以要求用户手动输入开始时间和结束时间,但我宁愿使用GAS自动根据日期字段进行操作。

这是我目前:

var vSS = SpreadsheetApp.getActiveSpreadsheet(); 
    var vS = vSS.getSheetByName("blah blah blah"); 
    var vLastRow = vS.getLastRow(); 
    var vStartDate = vS.getRange(vLastRow,6); 
    var vStartDateValue = vStartDate.getValues(); 
    var vEndDate = vS.getRange(vLastRow,7); 
    var vEndDateValue = vEndDate.getValues(); 

什么我需要做的就是这个工作?

+0

你有'createEvent()'在一些你前面的问题的代码,所以你可能知道该功能。你能更具体地说明你的问题是什么吗?并解释你为什么有两个日期,因为这不会与这个问题一起讨论? (PS:要获取单个单元格的值,请使用'getValue()',而不是'getValues()'。) – Mogsdad 2014-12-03 03:41:26

+0

开始日期和结束日期可能不同,可能为2-3天。我目前使用它来创建事件,但vStartValue和vEndValue的值没有与它们关联的时间,因此它不会正确创建事件。 calendar.createEvent('Booked',new Date(vStartDateValue),new Date(vEndDateValue),{location:Office}); – KMJO 2014-12-03 11:37:24

回答

0

您可以尝试使用此function创建一个开始日期和结束日期的事件。

要添加startTime和endTime,只需将时间值(09 AM或05 PM)附加到“vStartDateValue”。

希望有帮助!

0

我能够通过使用下面的代码来做到这一点:

function CreateEvent(){ 
var vSS = SpreadsheetApp.getActiveSpreadsheet(); 
var vS = vSS.getSheetByName("blah blah blah"); 
var vLastRow = vS.getLastRow(); 
var vCalendar = CalendarApp.getCalendarbyID('[email protected]') 
var vStartDate = vS.getRange(vLastRow,6); 
var vStartDateValue = new Date (vStartDate.getValue()); 
     vStartDateValue.setHours(9); 
var vEndDate = vS.getRange(vLastRow,7); 
var vEndDateValue = new Date (vEndDate.getValue()); 
     vEndDateValue.setHours(17); 

vCalendar.createEvent('Description', 
         vStartDateValue, 
         vEndDateValue) 
    }