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) 
    }