2012-05-11 15 views
5

Google Apps ScriptにCalendar Eventがあり、アンカーをクリックして開くことができます。 私はURLがこのように見えることができると思う:http://www.google.com/calendar/event?eid=SOMEID&ctz=Etc/GMT。 しかし、カレンダーイベントから必要なIDを取得できないようです。これらのURLではEvent.getId()から取得したIDは機能せず、event.getUrl()もありません。Google Appsスクリプトのカレンダーイベントにリンク(URL)を取得する

アプリスクリプトでこれが可能かどうかは知りませんか?

答えて

12

タイプCalendarEventeventオブジェクトを与えられ、calendarIdを与え、Googleのカレンダーアプリケーションでイベントを対応する/編集を表示するURLを構築するための最も簡単かつ作業方法は、以下である場合:

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.google.com/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('=',''); 
関連する問題