2017-04-24 214 views
1

我想與用戶共享Google表格,以便他們可以在其日曆中添加多日全天活動。由於谷歌不提供這樣做的功能,我厭倦了各種解決方法。 createEvent(title,startTime,endTime)並不完美,因爲它使用並顯示日期時間, createEventFromDescription(描述)不允許元數據,如描述,所以我嘗試使用高級日曆服務。 從我讀過的內容啓用高級日曆服務後,您應該可以像使用App腳本的內置日曆服務一樣使用Google Calendar API。如果我在一個圖紙腳本編輯器中運行這個內置函數,它可以工作,我可以製作一個表格的副本,通過電子郵件發送給其他人,他們也可以運行功能
var event = CalendarApp.getDefaultCalendar().createEvent('Apollo 11 Landing', new Date('July 20, 1969 20:00:00 UTC'), new Date('July 20, 1969 21:00:00 UTC'), {location: 'The Moon'}); Logger.log('Event ID: ' + event.getId());
如果我使用高級日曆服務和使用下面的代碼基本上是他們的例子,我可以在腳本編輯器中運行該功能,它的工作原理是,但如果我複製表單並將它發送給其他人嘗試,我會得到錯誤「Project(number)is not找到並且不能用於API調用「。任何人都可以看到我做錯了什麼。Google Apps腳本 - 高級日曆服務

function createEvent() { 
var calendarId = 'primary'; 

var event = { 
summary: 'Lunch Meeting', 
location: 'The Deli', 
description: 'To discuss our plans for the presentation next week.', 
start: { 
    date: "2017-05-21" 
}, 
end: { 
    date: "2017-05-24" 
}, 
attendees: [ 
    {email: '[email protected]'}, 
    {email: '[email protected]'} 
], 
// Red background. Use Calendar.Colors.get() for the full list. 
colorId: 11 
}; 
event = Calendar.Events.insert(event, calendarId); 
Logger.log('Event ID: ' + event.getId()); 
} 

回答

0

嗯,我不知道你爲什麼會得到API調用錯誤;然而,createEventFromDescription返回一個事件對象,所以你可以添加說明,像這樣:

var event = createEventFromDescription("Some event 4/25 - 4/30"); 
event.setDescription("This is a description."); 

CalendarApp不一樣強大的高級日曆服務(例如你不能設置一個事件的顏色),但它可能適合你的目的,足以讓人過目難忘。

+0

我的意思是感謝。如果我不能讓高級日曆服務工作 – slanton

+0

我想我的問題確實是......可以共享一張具有使用高級日曆服務的腳本的工作表,只需製作工作表副本即可。 – slanton

+0

答案是肯定的,但是與之分享的人也必須啓用Calendar API – slanton

相關問題