予定の属するカレンダーIDを取得する— getOriginalCalendarId()
今回のメソッドは、予定が属するカレンダーのIDを取得するgetOriginalCalendarId()メソッドをご紹介します。このメソッドは、複数のカレンダーを所有しているユーザーが横断的にカレンダーの予定を取得するような処理の際にどのカレンダーに属する予定なのかを確認するときなどに活用することができます。
こちらのメソッドは、予定に対してどのカレンダーに属しているのかを確認するために、属するカレンダーIDを取得するためのメソッドになります。処理の結果としては、カレンダーオブジェクトのIDを取得するgetId()メソッド(こちらの記事)と同じ結果となります。複数のカレンダーの予定を横断的に処理をしている場合にどのカレンダーに属する予定なのかを特定するような使い方が想定されいます。サンプルコードで具体的な使い方を見ていきましょう。
『 引数に入れる値 』
今回のメソッドに関しては引数は必要ありません。
getOriginalCalendarId()
//予定の属するカレンダーIDを取得するコード function sampleCode1() { var calendars = CalendarApp.getAllCalendars(); var startTime = new Date(); startTime.setDate(startTime.getDate() - 7); var endTime = new Date(); for (var i in calendars) { var calendar = calendars[i]; var events = calendar.getEvents(startTime, endTime); for (var j in events) { var event = events[j]; console.log(event.getOriginalCalendarId()); } } }
『 変数の説明 』
calendars = すべてのカレンダーを取得
startTime = 検索対象の開始日を代入(サンプルコードでは7日前を指定しています)
endTime = 検索対象の終了日を代入
calendar = 個々のカレンダーを代入
events = 個々のカレンダーごとに検索対象にマッチする予定を取得
event = 個々予定を取得
スクリプトができたら▶ボタンでプログラムを実行してみましょう。今回のコードでは所有するすべてのカレンダーを対象に、プログラム実行日の7日前から実行日までの間に作成されているすべての予定に対して処理を実行するコードを書いてみました。カレンダーはループ処理でカレンダーごとに対象となる予定の情報にアクセスしていきますが、それぞれの予定がどのカレンダーの予定なのかを確認するためにgetOriginalCalendarId()メソッドを利用してログに出力しています。
プログラムの実行が終了したらCtrl + Enterを打鍵してログを確認してみましょう。予定の属するカレンダーIDが出力されていると思います。もし検索対象の期間に予定がない場合は何も表示されないと思いますので、サンプルで適当な予定を作成してから再度プログラムを実行してログを確認してみましょう。
このメソッドを活用することで、複数カレンダーに対して横断的に処理を行うようなコードを組んだ場合でもその予定がどのカレンダーの予定なのかを確認することができます。
まとめ
今回は予定の属するカレンダーIDを取得するgetOriginalCalendarId()メソッドのご紹介をしました。予定がどのカレンダーの予定なのかを確認しながら、特定のカレンダーIDに一致する予定のみ処理を行うようなことができるようになります。