
Contents
すべてのカレンダーを取得するメソッド — getAllCalendars
今回はアカウントに紐付けられているすべてのカレンダーを取得するメソッドを説明します。このgetAllCalendars()というメソッドを使用すると、カレンダー情報を配列で取得することができます。
カレンダーを取得できると、他のメソッドと組み合わせていろいろなことがプログラムで実現できますので、CalendarAppクラスを利用する際の基本となるコードですので、ぜひ覚えておきましょう。
まずは、今回取得するカレンダーとはどの部分のことなのかをスクリーンショットでお伝えします。
上記スクリーンショットの赤枠部分に表示されるものが今回のメソッドで取得できる対象部分になります。この中で、『ToDoリスト』に関してはカレンダーには含まれませんので、サンプルアカウントでは、『自分のアカウント名』(モザイク部分)、『Family Schedule』、『新規カレンダー』、『Birthdays』そして『日本の祝日』がアカウントに接続中のカレンダーになります。
それではメソッドの解説を始めます。
『 引数に入れる値 』
今回のメソッドに関しては引数は必要ありません。
getAllCalendars()
//アカウントに紐付けられているすべてのカレンダーを取得してカレンダー名をログ出力するコード 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()
//共有されたカレンダーを除くカレンダーを取得するコード function sampleCode2() { var calendars = CalendarApp.getAllOwnedCalendars(); for (var i in calendars) { var calendarName = calendars[i].getName(); Logger.log(calendarName); } }
『 変数の説明 』
calendars = 自分がオーナー(共有された以外)のカレンダーすべてを配列で格納
calendarName = カレンダーの名前を格納
『スクリプトの説明』
使用方法はgetAllCalendars()と同じですので、スクリーンショットは割愛します。プログラムを実行したらログを確認して頂ければ自分がオーナーのカレンダ−名が表示されると思います。
まとめ
今回の投稿では、アカウントに紐付けられているカレンダーオブジェクトを取得するコードを紹介しました。カレンダーオブジェクトはCalendarAppクラスの中でも一番の大枠メソッドになりますので、ここから必要な情報を取得したり、予定を作成したりといったコードに連携させて使用することがメインになると思います。今回ご紹介したメソッドはカレンダーオブジェクトが配列で格納されるということを覚えておきましょう。