カレンダーを操作しよう

カレンダーを作成しよう

Google カレンダーでは複数のカレンダーを作ることができます。(この機能により、用途によってカレンダーを使い分けることができます。)
GAS でカレンダーを作るには、GoogleAppsクラスの createCalendar メソッド を活用します。
このメソッドはパラメータとして カレンダー名 を指定する必要があります。

メソッド名 パラメータ 戻り値 説明
createCalendar [String] カレンダーの名前 [Calendar] 作成したカレンダー ユーザーが所有する新しいカレンダーを作成します。

今回は以下のサンプルコードを実行して、旅行用のカレンダーを作成してみましょう。

function createCalendar() {
  const myCalendar = CalendarApp.createCalendar('旅行用');
}

サンプルコードが無事実行ができたら、Google カレンダーを再読み込みしてみましょう。
すると、マイカレンダーの中に旅行用カレンダーが作成されていることが確認できます。


カレンダーの情報を取得しよう

カレンダーに予定を作るには、まずカレンダーを取得する必要があります。
CalendarAppクラスの getAllCalendars メソッド を実行することで、Google カレンダー内にある全てのカレンダーを取得することができます。
このメソッドは Calendarクラスのオブジェクトを配列で返します。

メソッド名 パラメータ 戻り値 説明
getAllCalendars なし [Calendar[]] 取得したカレンダーの配列 ユーザーが所有または購読しているすべてのカレンダーを取得します。

以下のサンプルコードは CalendarApp.getAllCalendars() の戻り値をループ処理で一つずつ取得して処理をしています。

function getAllCalendar() {
  // 全てのカレンダーを取得する
  const allCalendar = CalendarApp.getAllCalendars();
  for (let i = 0; i < allCalendar.length; i++) {
    // カレンダーを一つずつ取得して、カレンダーの情報をログで出力する
    const calendar = allCalendar[i];
    const id = calendar.getId();
    const name = calendar.getName();
    const descripion = calendar.getDescription();
    console.log(id, name, descripion);
  }
}

サンプルコードの変数calendarには Calendarクラスのオブジェクトが格納されています。
Calendarクラスはカレンダーの情報を取得するためのメソッドを提供しています。
サンプルコードを実行すると、カレンダーのID、名前、説明がログで表示されますので確認してみましょう。

メソッド名 パラメータ 戻り値 説明
getId なし [String] 取得したカレンダーの ID カレンダーの ID を取得します。
getName なし [String] 取得したカレンダーの名前 カレンダーの名前を取得します。
getDescription なし [String] 取得したカレンダーの説明 カレンダーの説明を取得します。

カレンダーの説明の確認方法
カレンダーの説明はカレンダーの設定画面で確認することができます。
対象のカレンダーにマウスカーソルを合わせると3点リーダーが表示され、クリックするとメニューが表示されます。
このメニュー内の「設定と共有」を選択すると、カレンダーの設定画面を表示することができます。
page_3_1.png

また、ある特定のカレンダーのみを取得することもできます。
CalendarAppクラスの getCalendarById メソッド で特定のカレンダーを取得できます。
このメソッドはパラメータにカレンダーのIDを指定するため、特定のカレンダーを取得するには事前にカレンダーのIDを確認する必要があります。

以下のサンプルコードはカレンダーを特定し、そのカレンダーの情報を取得してログに出力しています。
‘カレンダーのID’ には先ほど作成した旅行用のカレンダーのIDを指定しましょう。

function getCalendarById() {
  // IDが一致するカレンダーを取得する
  const calendar = CalendarApp.getCalendarById('カレンダーのID');
  // 取得したカレンダーの情報を取得する
  const id = calendar.getId();
  const name = calendar.getName();
  const descripion = calendar.getDescription();
  console.log(id, name, descripion);
}

メソッド名 パラメータ 戻り値 説明
getCalendarById [String] カレンダーのID [Calendar] 取得したカレンダー 指定された ID のカレンダーを取得します。

カレンダーのIDの確認方法
カレンダーのIDはカレンダーの設定画面で確認することができます。
対象のカレンダーにマウスカーソルを合わせると3点リーダーが表示され、クリックするとメニューが表示されます。
このメニュー内の「設定と共有」を選択すると、カレンダーの設定画面を表示することができます。
page_3_2.png


カレンダーの情報を更新しよう

カレンダーを特定することができれば、カレンダーの情報を更新することができるようになります。
Calendarクラスの setName メソッド はカレンダーの名前を、
Calendarクラスの setDescription メソッド はカレンダーの説明を更新することができます。

以下のサンプルコードはカレンダーを取得した後にカレンダーの名前と説明を更新しています。
サンプルコードを実行したのち、期待通りに Google カレンダーが更新されているかを確認してみましょう。

function updateCalendar() {
  // IDが一致するカレンダーを取得する
  const calendar = CalendarApp.getCalendarById('カレンダーのID');
  calendar.setName('Updated Calendar');
  calendar.setDescription('This is updated by gas.');
}

メソッド名 パラメータ 戻り値 説明
setName [String] カレンダーの名前 なし カレンダーの名前を設定します。
setDescription [String] カレンダーの説明 なし カレンダーの説明を設定します。

カレンダーを削除しよう

カレンダーを特定することができれば、カレンダーを削除することもできます。
Calendarクラスの deleteCalendar メソッド はカレンダーを削除することができます。

以下のサンプルコードを実行すると特定したカレンダーが削除されます。
‘カレンダーのID’ には先ほど更新した Updated Calendar カレンダーのIDを指定しましょう。

function deleteCalendar() {
  // IDが一致するカレンダーを取得する
  const calendar = CalendarApp.getCalendarById('カレンダーのID');
  calendar.deleteCalendar();
}

メソッド名 パラメータ 戻り値 説明
deleteCalendar なし なし カレンダーを完全に削除します。自分が所有するカレンダーのみを削除できます。