【コピペで使える】GASで任意の予定の予定IDを取得してみる

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る
icon_for_CalendarApp_ getId
スポンサーリンク

予定のIDを取得する— getId()

今回のメソッドは、予定のIDを取得するメソッドを紹介します。

今回は予定のIDを取得するgetId()メソッドをご紹介します。おそらく、このメソッド以外で予定のIDを取得することはできないかと思います。IDをどこかに格納しておけば指定する予定にピンポイントでアクセスできますので、予定の削除や編集などを効率的に行うことができます。格納する場所はスプレッドシートでもプロパティでも良いかと思いますが、識別できる形で格納しておくことで処理を効率化してプログラムの処理速度などの向上が見込めます。本ページでは、基本的なIDの取得方法から、プログラム処理で作成した予定のIDを取得するコードの書き方も含めてご紹介します。

    1. getId()

『 引数に入れる値 』

今回のメソッドに関しては引数は必要ありません。

getId()

サンプルコード1
//予定のIDを取得するコード
function sampleCode1() {
  var calendar = CalendarApp.getDefaultCalendar();
  var date = new Date(); 
  var events = calendar.getEventsForDay(date);
  for (var i in events) {
    var event = events[i];
    var id = event.getId();
    console.log(id);
  }
}

『 変数の説明 』

calendar = デフォルトカレンダーを取得
date = プログラム実行日を代入
id = 予定のIDを取得

スクリプトができたら▶ボタンでプログラムを実行してみましょう。今回のコードではプログラム実行日に作成済みの予定IDがログに表示されるようにしました。ログに表示されるIDを利用すればgetEventByIdなどのIDを利用するコードでピンポイントに対象のイベントを取得できます。getEvents()やgetEventsForDay()でも予定は取得できますし、タイトルなどで絞り込みを行えば探している予定を効率的に取得できますが、IDを指定して予定を取得するよりも処理数が多くなってしまいがちです。処理が複雑になればなるほど処理時間が長くなってしまいますので、そのような状況を解消することができるかもしれません。

getId()(作成後に続けて予定IDを取得する)

サンプルコード2
//作成した予定IDを取得するコード
function sampleCode2() {
  var calendar = CalendarApp.getDefaultCalendar();
  var startTime = new Date(); //現在時刻を予定の開始時刻に指定
  var hour = 1; //指定した数字×時間分の予定を作成
  var endTime = new Date(startTime.getTime() + (hour * 60 * 60 * 1000)); //hourに指定した時間後を終了時刻に指定
  var event = calendar.createEvent("テスト予定", startTime, endTime);
  var id = event.getId();
  console.log(id);
}

『 変数の説明 』

calendar = デフォルトカレンダーを取得
date = プログラム実行日を代入
events = プログラム実行日に作成済みのイベントを取得
id = 予定のIDを取得

プログラムで作成した予定のIDを取得する方法がわからなければIDを格納することもできませんので、そのやり方をご紹介します。
createEventで作成すると、作成した予定が返り値として返されます。そのため、作成した予定を変数に入れてその変数に対してgetId()メソッドを実行することで、作成した予定のIDを取得することができます。
上記コードではその処理を行っていますので、イメージがおわかりいただけるかと思います。
このIDをどこかに保存することで予定IDを利用した処理に活用できます。

まとめ

今回は予定のIDを取得するgetIdメソッドのご紹介をしました。予定IDは処理を高速化するために有効ですので、ぜひ使い方を覚えておいてください。格納するときにも、IDだけではどの予定なのか人間の目ではわからないと思いますので、その後の処理のためにも識別するための情報を一緒に格納しておくと便利だと思います。

SNSでもご購読できます。

商標および、登録商標について

Googleおよび、Googleロゴおよび、Googleドライブおよび、Googleドキュメントおよび、Googleフォトおよび、Googleスプレッドシートおよび、Googleサイトおよび、GoogleスライドおよびGmailおよび、Googleマップおよび、Googleタスクおよび、Google WorkspaceはGoogle LLCの登録商標です。

本サイトのコンテンツはいかなる場合においても、Googleから公式に提携及び承認されているわけではありません。

 

 

コメントを残す

*