2014-04-01 69 views
0

我想修改一個我在網上找到的腳本,它似乎讓事件成爲一整天的事件,我不想要,我希望它只是時間在表單/電子表格中指定。從Google表單到Google日曆 - 日期和時間問題

電子表格就設在這裏 - https://docs.google.com/spreadsheet/ccc?key=0ApxazoOhNSK-dGFvZVhVOTQ1X3F3aWh4QTh3Wm9sbFE#gid=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 = "<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 
    }); 
}; 

的原創文章位於:http://bruceburge.com/2012/09/05/automatically-adding-events-to-a-google-calendar-from-a-google-form-submission/

我只是似乎無法得到日期工作...如果我使用原始代碼,它的工作正常,但時間是一整天,而不是指定的時間......我似乎已經試圖破壞它使其工作...任何幫助將是欣賞特德...

+0

我也試過這個教程,這似乎是要簡單得多,但踢回了同樣的錯誤,其他人都在視頻的評論... – user3486811

回答

0

它比我簡單得多,雖然...我只是刪除了他的一些行(將小時和分鐘設置爲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 = "[email protected]"; 

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

我的形式有以下欄目 - 時間戳,姓名,缺席,開始,結束,原因,意見。他們不需要成爲新詞,但我改變了他們的一個詞標題,因爲我試圖遵循的視頻例子......但上面的代碼創造了奇蹟。