メインコンテンツまでスキップ

カレンダーの取得

Google Apps Script には、Google カレンダーを操作するためのライブラリであるCalendarAppクラスが標準で組み込まれています。

ここではCalendarAppクラスを使用し、様々な操作の起点となるCalendarApp.Calendarオブジェクトを取得する方法を解説します。

GAS から Google カレンダーにアクセスすることになるため、初回実行時に権限の設定が必要になります。

このページで紹介する関数の概要

取得するための関数だけ知りたいという方は、タブリストから目的のタブを選択していただくことで、関数のサンプルをご覧いただけます。

作成者を問わず、全てのカレンダーを取得

/** @type { CalendarApp.Calendar[] } */
const calendars = CalendarApp.getAllCalendars();

作成者を問わず、全てのカレンダーを取得する

Google カレンダーには自分の作成したカレンダーと、他のユーザーが作成し自分が参加したカレンダーのいずれも表示されます。

この全てを取得したい場合は、CalendarApp.getAllCalendars関数を使用します。

利用する関数

関数の定義
/**
* @return { CalendarApp.Calendar[] } 対象ユーザーが所属するすべてのカレンダー
*/
CalendarApp.getAllCalendars;

サンプルコード

全てのカレンダーを取得するサンプル
/** 全てのカレンダー */
const calendars = CalendarApp.getAllCalendars();

console.log(`${calendars.length}件のカレンダーを取得しました`);

for (const calendar of calendars) {
console.log(`カレンダー名は「${calendar.getName()}」です`);
}

自分が作成したカレンダーを全て取得する

他のユーザーが作成し自分が参加したカレンダーを除く、全てのカレンダーを取得したい場合は、CalendarApp.getAllOwnedCalendars関数を使用します。

利用する関数

関数の定義
/**
* @return { CalendarApp.Calendar[] } 自分が作成したすべてのカレンダー
*/
CalendarApp.getAllOwnedCalendars;

サンプルコード

自分が作成した全てのカレンダーを取得するサンプル
/** 全てのカレンダー */
const calendars = CalendarApp.getAllOwnedCalendars();

console.log(`${calendars.length}件のカレンダーを取得しました`);

for (const calendar of calendars) {
console.log(`カレンダー名は「${calendar.getName()}」です`);
}

ID を指定して取得する

特定の 1 カレンダーを、ID を指定して取得することが可能です。

CalendarApp.getCalendarById関数を使用します。

利用する関数

関数の定義
/**
* @return { CalendarApp.Calendar | null } 対象カレンダー
*/
CalendarApp.getCalendarById;

対象 ID が存在しなかった場合は、nullが返却されます。

サンプルコード

自分が作成した全てのカレンダーを取得するサンプル
/** カレンダーのID */
const CALENDAR_ID = '___取得するカレンダーのID___';

/** 対象カレンダー */
const calendar = CalendarApp.getCalendarById(CALENDAR_ID);

if (!calendar) {
console.log('カレンダーが見つかりませんでした');
return;
}

console.log(`カレンダー名は「${calendar.getName()}」です`);

名前を指定して取得する

特定のカレンダーを、名前を指定して取得することが可能です。

CalendarApp.getCalendarsByName関数を使用します。

利用する関数

関数の定義
/**
* @return { CalendarApp.Calendar[] } 対象カレンダー
*/
CalendarApp.getCalendarsByName;

カレンダー名には重複が許されているため、取得されるカレンダーは配列になります。

同一名称のカレンダーが 2 つ存在する場合は、どちらも取得することになります。

サンプルコード

自分が作成した全てのカレンダーを取得するサンプル
/** カレンダー名 */
const CALENDAR_NAME = 'ToDo リスト';

/** 対象カレンダー */
const calendars = CalendarApp.getCalendarsByName(CALENDAR_NAME);

console.log(`${CALENDAR_NAME}というカレンダーは${calendars.length}件存在します`);