GASでGoogleカレンダーの終日予定を作成・取得する方法(createAllDayEvent)

Google Apps Script(GAS)でGoogleカレンダーの終日イベントの予定を作成する方法を解説します。

createAllDayEventによる終日イベント作成は引数の設定方法がいくつかのパターンがあります。

さらにカレンダーから取得したイベントから終日予定のものを取得する方法も紹介します。

Googleカレンダーには終日予定イベントが設定可能

Googleカレンダーはスマホやパソコンなどのマルチデバイスで利用可能なスケジュールサービスです。

パソコンだけでなく、スマホでもアプリ・ウェブで利用可能なGoogleカレンダー

スケジュール管理に便利なだけでなく、GmailやGoogle MeetなどのGoogleサービスと連携しやすい特徴があります。

そんなGoogleカレンダーのイベントは通常、開始時間と終了時間を設定して作成しますが、終日予定も作成可能です。

開始時間・終了時間を指定せずに、日付だけ指定する形で終日のイベントとして登録できます。

GASで終日予定を作るにはcreateAllDayEvent

そんなGoogleカレンダーの終日予定イベントは、Google Apps Script(GAS)のスクリプトからも作ることができます。

GASで終日イベントを作成する際は、createAllDayEventメソッドを使います。

createAllDayEventメソッドの引数指定方法は以下の4パターンです。

  1. createAllDayEvent(title, date)
  2. createAllDayEvent(title, startDate, endDate)
  3. createAllDayEvent(title, date, options)
  4. createAllDayEvent(title, startDate, endDate, options)

それぞれの引数パターンでの終日イベントをGASで作成する方法を説明していきます。

①Googleカレンダーの終日予定を作成するGASコード

Google Apps Script(GAS)でGoogleカレンダーの終日イベントを作成するサンプルコードを解説します。

まず、引数が最も少ないイベント名と日付の2つを指定して、終日イベントをGASから作成します。

function registAlldayEvent() {
  //自分のGoogleアカウントのデフォルトカレンダーを取得する
  const calender = CalendarApp.getDefaultCalendar();
  //終日イベントを登録する日付を定義する(月は0-11で指定)
  const date = new Date(2023, 8, 18);
  //自分のGoogleカレンダーに終日イベントを登録する
  calender.createAllDayEvent("GASから登録",date);
}

createAllDayEventメソッドの第一引数に予定タイトル、第二引数に予定日のDateオブジェクトを指定します。

Google Apps Script(GAS)のcreateAllDayEventメソッドでGoogleカレンダーの終日予定イベントを作成するサンプルコード

GASサンプルコードを実行した後、Googleカレンダーを開くと週日イベントが作成されていることが確認できます。

Google Apps Script(GAS)のcreateAllDayEventメソッドでGoogleカレンダーの終日予定イベントを作成するサンプルコードを実行すると、終日予定が生成

編集アイコン(ペンマーク)をクリックして、イベント詳細を確認すると、「終日」にチェックが入っています。

Googleカレンダーの予定の編集から終日イベントであることを確認可能

このようにGASのcreateAllDayEventメソッドからGoogleカレンダーの終日予定が作成できました。

②一定期間の終日予定を作成するGASコード

続いて、1日ではなく一定期間の終日予定を作成するGoogle Apps Script(GAS)のサンプルコードです。

function registAlldayEvent2() {
  //自分のGoogleアカウントのデフォルトカレンダーを取得する
  const calender = CalendarApp.getDefaultCalendar();
  //終日イベントを登録する開始日を定義する(月は0-11で指定)
  const startDate = new Date(2023, 8, 19);
  //終日イベントを登録する終了日を定義する(月は0-11で指定)
  const endDate = new Date(2023, 8, 23);  
  //自分のGoogleカレンダーに終日イベントを登録する
  calender.createAllDayEvent("終日期間イベント",startDate,endDate);
}

createAllDayEventメソッドの引数が3つになり、予定タイトルに加え、開始日と終了日のDateオブジェクトを指定します。

Google Apps Script(GAS)のcreateAllDayEventメソッドで、開始日と終了日を指定してGoogleカレンダーの終日予定イベントを作成するサンプルコード

GASを実行すると、Googleカレンダーに複数日に渡る終日イベントが作成できました。

Google Apps Script(GAS)のcreateAllDayEventメソッドから作成した複数日に渡った終日予定のイベント

夏季休暇や展示会などの長期間に渡る終日予定をGASから登録することが可能です。

③終日予定の詳細を設定するGASコード

3つ目はGoogleカレンダーの終日イベントの詳細情報も設定する形で登録する方法です。

Google Apps Script(GAS)のcreateAllDayEventメソッドに、予定の場所や詳細をoptionsとして引数指定します。

function registAlldayEvent3() {
  //自分のGoogleアカウントのデフォルトカレンダーを取得する
  const calender = CalendarApp.getDefaultCalendar();
  //終日イベントを登録する日付を定義する(月は0-11で指定)
  const date = new Date(2023, 8, 25);
  //終日イベントの詳細情報を設定する
  const options = {
    location: '東京駅',
    description: '東京駅で終日イベント参加'
  }
  //自分のGoogleカレンダーに終日イベントを登録する
  calender.createAllDayEvent("終日イベント(詳細付)",date, options);
}

options引数はオブジェクト型で予定の場所をlocation、予定の詳細をdescriptionとして定義します。

Google Apps Script(GAS)のcreateAllDayEventメソッドで詳細含めた終日予定イベントを作成するサンプルコード

GASサンプルコードを実行すると、Googleカレンダーの終日予定に場所や詳細も追加されています。

Google Apps Script(GAS)から予定の場所や詳細も付与された予定を作成

さらに、予定タイトル、開始日、終了日、オプションの4つを引数に指定することも可能です。

終日予定のイベントのみ取得するには

Googleカレンダーに登録された終日予定のイベントをGoogle Apps Script(GAS)で取得するにはどうすればよいでしょうか。

GASには終日予定のイベントを取得するというメソッドは用意されていません。

しかし、予定イベントが終日かどうか判定するisAllDayEventメソッドがあるので、それを使って条件判定します。

function getAllDayEvent(){
  //自分のGoogleアカウントのデフォルトカレンダーを取得する
  const calender = CalendarApp.getDefaultCalendar();
  //イベント予定を取得する開始日を定義する(月は0-11で指定)
  const startDate = new Date(2023, 8, 18);
  //イベント予定を取得する終了日を定義する(月は0-11で指定)
  const endDate = new Date(2023, 8, 26);  
  //自分のGoogleカレンダーに開始日から終了日のイベントを取得する
  const events = calender.getEvents(startDate, endDate);
  //取得したイベントの中から終日イベントを判定して出力する
  for(let i=0;i<events.length;i++){
    if(events[i].isAllDayEvent()==true){
      console.log(events[i].getTitle());
    }
  }
}

isAllDayEventの戻り値はboolean型で終日予定の場合はtrue、終日予定でない場合はfalseになります。

そこでtrueと判定された予定イベントだけ抽出することで終日予定のみ取得可能です。

Google Apps Script(GAS)でGoogleカレンダーの予定を取得し、その中から終日予定のみ抽出するサンプルコード

Googleカレンダーから終日イベントをGASで取得したい場合は、isAllDayEventメソッドを使いましょう。

まとめ・終わりに

今回、Googleカレンダーの終日予定のイベントをGoogle Apps Script(GAS)で作成・取得する方法を紹介しました。

Googleカレンダー上で開始時間・終了時間を指定しない終日予定は、GASのcreateAllDayEventメソッドで作成可能です。

createAllDayEventメソッドは引数の指定パターンが4種類あり、詳細付きの終日イベントや複数日に渡る終日イベントも作成できます。

終日予定イベントをGASから取得したい場合は、Googleカレンダーから予定を取得した上で、isAllDayEventメソッドで判定します。

夏季休暇や長期イベントなどをGASから登録したい場合に、createAllDayEventメソッドを活用しましょう。