LoginSignup
1
1

More than 1 year has passed since last update.

40 代おっさん GASのCalendarAppクラスについて学ぶ

Posted at

本記事ついて

本記事は プログラミング初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。

CalendarApp

CalendarAppとは
Calendarサービスの最上位に位置するトップレベルオブジェクト

CalendarAppクラスの主なメンバー

メンバー 戻り値 説明
createCalender(name,options) Calender 新しいカレンダーnameを作成する
getAllCalenders() Calender[] ユーザーが所有または閲覧しているすべてのカレンダーを取得する
getAllOwnedCalenders() Calender[] ユーザーが所有しているすべてのカレンダーを取得する
getCalenderById(id) Calender idでカレンダーを取得する
getCalendersByName(name) Calender[] カレンダー名nameのすべてのでカレンダーを取得する
getDefaultCalender() Calender ユーザーのデフォルトカレンダーを取得する

カレンダーを取得する

カレンダーを取得する方法
・カレンダーIDで取得
・デフォルトカレンダーを取得
・所有または閲覧しているカレンダーを取得

GoogleカレンダーもほかのGoogleアプリケーション同様に一意できまるIDが付与されている。
IDは右側にある3点リーダーアイコンからオーバーフローメニューを開き、設定と共有を選択
設定画面の左側メニューからカレンダー統合をクリックするとカレンダーIDが確認できる。

ユーザーのデフォルトカレンダーであれば、ユーザーのGoogleアカウントのアドレス自体がカレンダーIDに、
別カレンダーであれば「×××××××××××@group.calendar.google.com」になる。

カレンダーIDを用いてカレンダーを取得するには
getCalendarByIdメソッドを使用

構文

CalendarApp.getCalendarById(カレンダーID)

ユーザーデフォルトカレンダーであれば
getDefaultCalenderメソッドを使用

構文

CalendarApp.getDefaultCalendar()

お試し

function tosiki() {
  const id = '************@group.calendar.google.com';
  const calendar = CalendarApp.getCalendarById(id);
  console.log(calendar.getName());

  const defaultCalendar = CalendarApp.getDefaultCalendar();
  console.log(defaultCalendar.getName());
}

アクセス可能なカレンダーを配列で取得する

アクセス可能なカレンダーを取得するには

getAllOwnedCalendersメソッド

構文

CalendarApp.getAllOwnedCalenders()

getAllCalendersメソッド

構文

CalendarApp.getAllCalenders()

*戻り値は配列となります。

お試し

function tosiki() {
  const calendars = CalendarApp.getAllCalendars();

  for (const calendar of calendars) {
    console.log(calendar.getName());
  }
}

カレンダーを作成する

カレンダーを作成するには
createCalenderメソッドを使う

構文

CalendarApp.createCalender(タイトル[ ,オプション])

オプションはオブジェクト形式で指定できる。
timeZoneのデフォルト値がUTCになっているので日本のタイムゾーン(Asia/Tokyo)に設定するにはオプション設定が必要

createCalenderメソッドのオプション

オプション 説明
timeZone String カレンダーのタイムゾーン(デフォルト:UTC
color String 16進数の色の文字列(#RRGGBB)またはEnum CalendarApp.Colorsの値を指定
hidden Boolean カレンダーがリストで非表示になっているか(デフォルト:false)
selected Boolean カレンダーが選択されているかどうか(デフォルトはtrue)

カレンダーのイベントの表示・非表示の動作は、selectedが担っていると言うことになる。

お試し

function tosiki() {
  const name = 'テストカレンダー';
  const options = {
    timeZone: 'Asia/Tokyo',
    color: CalendarApp.Color.INDIGO
  };

  CalendarApp.createCalendar(name, options);
}

参考資料

https://www.amazon.co.jp/%E8%A9%B3%E8%A7%A3-Google-Apps-Script%E5%AE%8C%E5%85%A8%E5%85%A5%E9%96%80-%E7%AC%AC3%E7%89%88/dp/4798064742

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1