今回はアカウントに紐付けられているカレンダーのうち、カレンダー名から特定のカレンダーオブジェクトを取得するメソッドを紹介します。getCalendarsByName()というメソッドになりますが、メソッド名からわかるように、Googleカレンダーでは複数のカレンダーに同じカレンダー名を付けることが可能です。
今回のメソッドでは複数のカレンダーに同じ名前がつけられていたとしても、カレンダー名が一致するカレンダーを一括で取得することができます。
カレンダー名から特定のカレンダーを取得するメソッド — getCalendarsByName
コピペで使えるサンプルコードを参照したい方はこちらをクリックすればサンプルコードまでジャンプできますので、手っ取り早くコードを確認したい方はクリックしてください。
カレンダーをIDで取得する方法は『【コピペで使える】GASでIDを使ってカレンダーを取得してみる』で紹介しておりますが、今回はカレンダー名を指定することでカレンダーオブジェクトを取得するメソッドを今回の投稿では取り扱います。人が見たままの表記で指定できるのは分かりやすくて使いやすいかもしれませんね。このメソッドで取得するカレンダーは配列で取得されますので、使用される際はループ処理などで取り出すことになります。
それでは、メソッドの説明に移ります。
『 引数に入れる値 』
- name(文字列) — 取得したいカレンダーのカレンダー名
『 関連するメソッド 』
合わせて覚えたいリマインダー操作に関するメソッド
- createCalendar — 新規カレンダーを作成する
- getOwnedCalendarsByName — 自分がオーナーのカレンダーをカレンダー名で取得する
- getOwnedCalendarById — 自分がオーナーのカレンダーをカレンダーIDで取得する
- getDefaultCalendar — デフォルトカレンダーを取得する
- getAllCalendars — すべてのカレンダーを取得する
- getCalendarById — カレンダーIDからカレンダーを取得する
- getName — カレンダー名を取得する
getCalendarsByName(name)サンプルコード
//カレンダー名からカレンダーを取得するコード function sampleCodeForGetCalendarsByName() { var name = "日本の祝日"; //ご利用の際はご自身のアカウントに紐付けられているカレンダー名に置き換えて下さい。 var calendars = CalendarApp.getCalendarsByName(name); for (var i in calendars) { var calendarName = calendars[i].getName(); console.log(calendarName); } }
『 変数の説明 』
name = 取得したいカレンダーのカレンダー名を代入
calendars = カレンダー名を指定したカレンダーオブジェクトを配列で格納
calendarName = カレンダーの名前を格納
『getCalendarsByName(name)サンプルコード』に上記サンプルスクリプトを記載したスクリプトがありますので、アクセスして▶ボタンでプログラムを実行してみましょう。
Googleカレンダーに「日本の祝日」という名前のカレンダーがあれば、実行ログには、カレンダー名である「日本の祝日」という文字が出力されます。カレンダー名が自分のGoogleカレンダーになければ実行ログには何も表示されません。
検索の対象は、マイカレンダー(自分がオーナーのカレンダー)と他のカレンダー(他のアカウントのカレンダー)も検索対象となります。
ちなみに、アルファベットでカレンダー名を指定する場合は、大文字小文字の区別はされません。
『スクリプトの説明』
変数calendarsには指定したカレンダー名と一致するカレンダーオブジェクトが配列で格納されています。forループで配列から一つずつカレンダーオブジェクトを取り出して、getName()メソッドを使ってカレンダーオブジェクトからカレンダー名を変数calendarNameに代入して、console.log(calendarName)でログにカレンダー名を出力させています。
まとめ
今回のコードでは、カレンダー名を指定して特定のカレンダーオブジェクトを取得するメソッドをご紹介しました。取得されたカレンダーは配列として取得されることに注意して下さい。
すべてのサンプルコードはコピーしてスクリプトエディタに貼り付けることでそのまま利用が可能です。
コメント
コメント一覧 (2件)
[…] ダー名を使って特定のカレンダーを取得するメソッドを紹介します。今回のメソッドはgetCalendarsByName()メソッドと似ていますが、getCalendarsByName()メソッドは他のアカウントがオーナーのカ […]
[…] 今回のメソッドは、殆どのケースではgetCalendarByName()メソッドと一緒に使うことが想定されます。スプレッドシートなどに用意したデータベースにカレンダー名を格納しておけば一発で任 […]