Google Apps Script グーグルカレンダー情報を取得する

Google Apps Script

こんにちは、ばばーるです。

今回はグーグルカレンダー情報を取得する方法についてご紹介します。

スポンサーリンク

カレンダーを取得

特定のグーグルカレンダーにアクセスする前に自分が利用しているカレンダーを確認しましょう。

getDefaultCalendar: ユーザーのグーグルIDのカレンダーを取得します。結果はGmailのアドレスが表示されます。

function myFunction() {
  const Calendar = CalendarApp.getDefaultCalendar();
  console.log(Calendar.getName());
}

getAllCalendars: ユーザーが作成した、または使用しているすべてのカレンダーを取得します。スクリプトでカレンダーの一覧を取得します。

function myFunction() {
  const calendars = CalendarApp.getAllCalendars();
  for (let i = 0; i < calendars.length; i++) {
    let calendarName = calendars[i].getName();
    console.log(calendarName);
  }
}

getAllOwnedCalendars:ユーザーが作成した全てのカレンダーを取得します。

function myFunction() {
  const calendars = CalendarApp.getAllOwnedCalendars();
  for (let i = 0; i < calendars.length; i++) {
    let calendarName = calendars[i].getName();
    console.log(calendarName);
  }
}

先ほどのカレンダーの”Holidays in Japan”と”誕生日”以外の、自分で作成したカレンダーだけがログ出力されます。

getCalendarById(id): IDからカレンダーを取得します。グーグルカレンダーもスプレッドシートやドライブのようにIDで特定のカレンダーにアクセスできます。

まずはグーグルカレンダーからカレンダーIDにアクセスしましょう。アクセスしたいカレンダーの横の:をクリックします。

さらに”設定”をクリックします。

設定を開くと下の方にカレンダーIDが表示されています。

(カレンダーの名前がHolidays in Japanではなくて、日本の祝日となっている場合は”ja.japanese#holiday@group.v.calendar.google.com”をご使用ください。)

カレンダーIDをしたのスクリプトにコピペして、取得できてるかどうか確認しましょう。

function myFunction() {
  const jpCalendarID = 'en.japanese#holiday@group.v.calendar.google.com';
  const jpCalendar = CalendarApp.getCalendarById(jpCalendarID);
  console.log(jpCalendar.getName());
}

ログ出力を確認すると…

取得されました。

getCalendarsByName(name): カレンダー名からも、所有または使用しているカレンダーを取得しできます。(名前では大文字と小文字は区別されません。)

function myFunction() {
  const jpCalendarName = 'Holidays in Japan';
  const jpCalendar = CalendarApp.getCalendarsByName(jpCalendarName);
  console.log('Found %s matching calendars.', jpCalendar.length);
}

カレンダーを確認できました。

イベントを取得

カレンダーのアクセス方法を理解した後はカレンダー内のイベントにアクセスしましょう。

例えば、このようなイベントがカレンダーに載っていたとします。

getEvents(startTime, endTime): 指定された時間範囲内のイベントを取得します。(タイムゾーンが指定されていない場合、時間値はスクリプトのタイムゾーンで解釈されます。)

function myFunction() {
  const startTime = new Date('2020/12/27');
  const endTime = new Date('2021/1/2');
  const events = CalendarApp.getDefaultCalendar().getEvents(startTime, endTime);
  console.log(events.length);
}

Meetingが3回、ブログが3回の計6回のイベントの結果がログ出力されています。

getEventsForDay(date): dateの日のイベントを取得します。

function myFunction() {
  const date = new Date('2020/12/29');
  const events = CalendarApp.getDefaultCalendar().getEventsForDay(date);
  console.log(events.length);
}

12月29日のイベント数2がログ出力されています。

まとめ

今回はグーグルカレンダー情報を取得する方法についてご紹介しました。

  • getDefaultCalendar: ユーザーのグーグルIDのカレンダーを取得する
  • getAllCalendars: ユーザーが作成した、または使用しているすべてのカレンダーを取得する
  • getAllOwnedCalendars:ユーザーが作成した全てのカレンダーを取得する
  • getCalendarById(id): IDからカレンダーを取得する
  • カレンダーIDは設定から取得できる
  • getEvents(startTime, endTime): 指定された時間範囲内のイベントを取得する
  • getEventsForDay(date): dateの日のイベントを取得する

タイトルとURLをコピーしました