2012-05-11 100 views
5

我在Google Apps腳本中有Calendar Event,我希望允許用戶通過單擊錨點將其打開。 我想我可以把URL看起來像這樣:http://www.google.com/calendar/event?eid=SOMEID&ctz=Etc/GMT。 但是我似乎無法從日曆事件中獲取所需的ID。我從Event.getId()獲得的ID在這些URL中不起作用,並且沒有event.getUrl()。將鏈接(url)鏈接到Google應用程序腳本中的日曆事件

有誰知道這是可能的應用程序腳本?

回答

12

CalendarEvent類型給出event對象,並給予calendarId,建立一個網址,查看相應的谷歌日曆應用程序事件/編輯的最簡單和工作方法如下:

var splitEventId = event.getId().split('@'); 
var eventURL = "https://www.google.com/calendar/event?eid=" + Utilities.base64Encode(splitEventId[0] + " " + calendarId); 

最好的事情是不需要Google API調用,身份驗證等等!

+2

這非常有幫助!謝謝!該URL現在應該是'https://calendar.google.com/calendar/event?eid ='現在通過:) – xd1936

+1

提示:使用[getOriginalCalendarId()](https://developers.google.com/apps-script/reference/calendar/calendar-event#getOriginalCalendarId())來獲取日曆ID –

0

這確實是不可能的。應用程序腳本問題跟蹤器提出了一項增強請求,提到了這種錯誤。你可能想要開始它來跟蹤更新和投票的種類。

Issue 627: GAS for Appointments

+0

此答案已過時。請參閱以下內容[答案](http://stackoverflow.com/a/33302612/1595451) –

1

新版Google日曆打破了這一點。以下是修復方法:

var mycal = '[email protected]' 
var splitEventId = event.getId().split('@'); 
var eventUrl = "https://www.google.com/calendar/event?eid=" + 
Utilities.base64Encode(splitEventId[0] + " " + mycal).toString().replace('=',''); 
相關問題