- Google Calendar API を有効にする
- htmlLinkを取得するコードを書く
- 実行する
1. Google Calendar API を有効にする
有効にする方法がわからない場合は以下の手順でAPIを有効にできます
1. スプレッドシートのツール→スクリプトエディタ...を選択します
2. リソース→Google の拡張サービス.. を選択します
3. プロジェクト名を任意で設定して「OK」をクリックします
4. Calender API の右のボタンが無効になっているので
クリックして「ON」にします
5. ↑の画面の Google API コンソール をクリックして「calendar」で検索して出て来る
Google Calendar APIを選択します
6.「有効にする」をクリックします
7. スクリプトエディタに戻って「OK」をクリックします
2. htmlLinkを取得するコードを書く
Advanced Calendar Service のlistNext10Events()を改造してhtmlLinkを取得するコードを書きました
コード.gs
function listNext10Events_with_link() { var calendarId = 'primary'; var now = new Date(); var events = Calendar.Events.list(calendarId, { timeMin: now.toISOString(), singleEvents: true, orderBy: 'startTime', maxResults: 10 }); if (events.items && events.items.length > 0) { for (var i = 0; i < events.items.length; i++) { var event = events.items[i]; var link = event.htmlLink; if (event.start.date) { var start = event.start.date; Logger.log([event.summary, start, link]); } else { var start = Utilities.formatDate(new Date(event.start.dateTime), 'Asia/Tokyo', 'yyyy/MM/dd/HH:mm'); Logger.log([event.summary, start, link]); } } } else { Logger.log('No events found.'); } } |
意訳.gsこの処理は以下の処理を実行する カレンダーのIDを設定する 現在日時を取得する カレンダーIDを指定してイベントたちを取得する 現在日時以降で 繰り返しのイベントを個別に展開して 開始時刻で並べて 10件取得する eventsのitemsが存在して長さが0より大きければ events.itemsの数だけ以下を繰り返す events.itemsを順番に取得する htmlLinkでlinkを取得する もしeventにstart.dateが存在すれば start.dateを取得して summaryとlinkと一緒にログに出す start.dateが存在しなければ event.start.dateTimeをフォーマットして summaryとlinkと一緒にログに出す eventsのitemsが存在しないか長さが0より大きくなければ 'No events found.'をログに出す |
listNext10Events_with_link()を実行するとこれらからの予定が10件ログに出ます
var link = event.htmlLinkでは以下のようなリンクを取得できます
https://www.google.com/calendar/event?eid=EVENT_ID
ここで取得したリンクから開けるのはこの画面
編集画面を開きたい場合は
https://calendar.google.com/calendar/r/eventedit/EVENT_ID
とすれば良さそうなのでそれも次の記事で書きます
参考
Google Calendar API (calendar/quickstart/apps-script)
https://developers.google.com/google-apps/calendar/quickstart/apps-script
Calendar Service
https://developers.google.com/apps-script/reference/calendar/
maxResults
Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional.
https://developers.google.com/google-apps/calendar/v3/reference/calendarList/list
Google Calendar API Usage Limits
The Google Calendar API has a courtesy limit of 1,000,000 queries per day.
https://developers.google.com/google-apps/calendar/pricing?hl=ja
Listing events
https://developers.google.com/apps-script/advanced/calendar
Events/Resource representations
https://developers.google.com/google-apps/calendar/v3/reference/events#resource