【GAS】getAllCalendarsメソッドを完全マスター

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る
Googleカレンダーアイコン

すべてのカレンダーを取得するメソッド — getAllCalendars

今回はアカウントに紐付けられているすべてのカレンダーを取得するメソッドを説明します。このgetAllCalendars()というメソッドを使用すると、カレンダー情報を配列で取得することができます。

カレンダーを取得できると、他のメソッドと組み合わせていろいろなことがプログラムで実現できますので、CalendarAppクラスを利用する際の基本となるコードですので、ぜひ覚えておきましょう。

まずは、今回取得するカレンダーとはどの部分のことなのかをスクリーンショットでお伝えします。

接続中のカレンダー

上記スクリーンショットの赤枠部分に表示されるものが今回のメソッドで取得できる対象部分になります。この中で、『ToDoリスト』に関してはカレンダーには含まれませんので、サンプルアカウントでは、『自分のアカウント名』(モザイク部分)、『Family Schedule』、『新規カレンダー』、『Birthdays』そして『日本の祝日』がアカウントに接続中のカレンダーになります。

それではメソッドの解説を始めます。

  1. getAllCalendars()
  2. getAllOwnedCalendars()

『 引数に入れる値 』

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

getAllCalendars()

サンプルコード1
//アカウントに紐付けられているすべてのカレンダーを取得してカレンダー名をログ出力するコード
function sampleCode1() {
  var calendars = CalendarApp.getAllCalendars();
  for (var i in calendars) {
    var calendarName = calendars[i].getName();
    Logger.log(calendarName);
  }
}

『 変数の説明 』

calendars = アカウントに接続中のカレンダーすべてを配列で格納
calendarName = カレンダーの名前を格納

 

スクリプトができたら▶ボタンでプログラムを実行してみましょう。実行が終了したら下記の手順でログを確認してみます。

まずはスクリプトエディタ上部のメニューにある『表示』をクリックログ確認方法①

次に『ログ』を選択します。

ログ確認方法②

すると、新しいダイアログでログが表示され、Logger.log()に入れた変数の値が出力されます。

ログ確認方法③

今回の例では、『新規のカレンダー』、『Family Schedule』、『自分のアカウント』、『Contacts』、『日本の祝日が出力されました。『Contacts』とは、『Birthdays』の事になります。

『スクリプトの説明』

変数calendarsには接続しているすべてのカレンダーが配列で格納されます。forループで配列内をループし、getName()メソッドを使ってカレンダーオブジェクトからカレンダー名を取得し、変数calendarNameに代入し、Logger.log(calendarName)でログにカレンダー名を表示させています。

getAllOwnedCalendars()

サンプルコード2
//共有されたカレンダーを除くカレンダーを取得するコード
function sampleCode2() {
  var calendars = CalendarApp.getAllOwnedCalendars();
  for (var i in calendars) {
    var calendarName = calendars[i].getName();
    Logger.log(calendarName);
  }
}

『 変数の説明 』

calendars = 自分がオーナー(共有された以外)のカレンダーすべてを配列で格納
calendarName = カレンダーの名前を格納

『スクリプトの説明』

使用方法はgetAllCalendars()と同じですので、スクリーンショットは割愛します。プログラムを実行したらログを確認して頂ければ自分がオーナーのカレンダ−名が表示されると思います。

まとめ

今回の投稿では、アカウントに紐付けられているカレンダーオブジェクトを取得するコードを紹介しました。カレンダーオブジェクトはCalendarAppクラスの中でも一番の大枠メソッドになりますので、ここから必要な情報を取得したり、予定を作成したりといったコードに連携させて使用することがメインになると思います。今回ご紹介したメソッドはカレンダーオブジェクトが配列で格納されるということを覚えておきましょう。

すべてのサンプルコードはコピーしてスクリプトエディタに貼り付けることでそのまま利用が可能です。

スクリプトエディタの開き方は『3種類のスクリプトとスクリプトエディタの開き方』を確認して下さい。ぜひご自身でも挙動を確認してみて下さい。

SNSでもご購読できます。

コメントを残す

*