15
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Google Calendar APIでイベントのIDを取得した話

Last updated at Posted at 2017-12-25

#はじめに
@satoshiks です
Apps Scriptでカレンダーの予定を取得する時に、Calendar ServiceではイベントのIDが取得できなかったのでCalendar APIを利用して取得した時のメモです

イベントの編集画面への直リンクを作りたくてイベントIDを取得したかった

###ここでいうイベントIDとは
スクリーンショット 2017-12-25 7.33.34.png

#これで取得できた
Google Calender APIを有効にして以下のコードを実行すると取得できました

Code.gs
function get_event_id() {
  var events = Calendar.Events.list("primary", {
    timeMin: new Date().toISOString(),
    singleEvents: true,
    orderBy: "startTime",
    maxResults: 1
  });
  var link = events.items[0].htmlLink;
  var event_id = link.split("eid=")[1];
  Logger.log([link, event_id]);
}

##イベントの編集画面への直リンク作成
htmlLinkは編集画面へのリンクではないため、編集画面への直リンクを作るには https://calendar.google.com/calendar/r/eventedit/イベントID のようにイベントIDをくっつけると作成できました

###htmlLinkで開く画面
https://www.google.com/calendar/event?eid=イベントID で開く画面
スクリーンショット 2017-12-25 8.38.16.png

###イベントの編集画面
https://calendar.google.com/calendar/r/eventedit/イベントID で開く画面
スクリーンショット 2017-12-25 8.39.30.png

##htmlLink以外に取得できる項目
Events/Resource representations

##Calendar APIを有効にする手順

  1. スクリプトエディタを開く
  2. 上部のメニューからリソースを開く
  3. Google の拡張サービス...を開く
  4. Calendar APIを「ON」にする(そしてOKをクリックする)
  5. Google API コンソールのリンクをクリックする
  6. Calendarで検索してGoogle Calendar APIを選択する
  7. 「有効にする」ボタンをクリックする

詳しくはこちら

手順4でOKをクリックするとモーダルが閉じるので、7までやってからOKをクリックするとよいかも

#取得できなかったコード

最初はこれで取得できると思っていましたが、hoge@google.comというidが返ってきました
欲しいidはこれじゃなかったのでいろいろ調べてCalendar APIにたどり着いたのでした

Code.gs
function get_event_id(){
  var calendar = CalendarApp.getCalendarById("primary");
  var events = calendar.getEventsForDay(new Date());
  var events0_id = events[0].getId();
  Logger.log(events0_id);
}

#おわりに
Calendar Serviceで実現できそうな気もしながら色々調べて試してみた結果できなかったため、APIを利用して取得してみました
本当はできるんじゃないかとまだちょっと思っていますが、APIで実現できたので今回はその方法を書いてみました

#参考

15
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?