2013-01-12 109 views
1

我正在構建一個Google Apps腳本代碼,它將日曆中的事件寫入電子表格。 我想使用的日曆不是我的默認日曆,我想通過名稱獲取此日曆。 然而,該方法不工作... getCalendarById的工作,但因爲這個劇本是爲一個非initated用戶,我需要通過名稱來獲取日曆...Google Apps腳本 - 問題getCalendarsByName然後getEvents

感謝您進一步的幫助!

var cal = CalendarApp.getCalendarsByName("Test 21");  
// var cal = CalendarApp.getDefaultCalendar(); 
var sheet = SpreadsheetApp.getActiveSheet(); 

var events = cal.getEvents(new Date("January 1, 2012"), new Date("December 31, 2030")); 

for (var i=0;i<events.length;i++) { 

var details=[[events[i].getTitle(), events[i].getDescription(), events[i].getStartTime(), events[i].getEndTime()]]; 

var row=i+1; 

var range=sheet.getRange(row,1,1,4); 

range.setValues(details); 

} 
} 

當我啓動我的劇本,我得到的錯誤: 類型錯誤:無法找到日曆中的方法getEvents。 (第22行)

回答

2

您是否注意到getCalendarsByName中的's'?這意味着此方法返回一個日曆對象數組,因爲可能有許多具有相同名稱的日曆。 如果您認爲最有可能只有一個日曆與您輸入的名稱,那麼您可以決定只獲得第一個。

要做到這一點,簡單地定義卡爾這樣

var cal = getCalendarByName(name string)[0]