カレンダーの取得
Google Apps Script には、Google カレンダーを操作するためのライブラリであるCalendarApp
クラスが標準で組み込まれています。
ここではCalendarApp
クラスを使用し、様々な操作の起点となるCalendarApp.Calendar
オブジェクトを取得する方法を解説します。
GAS から Google カレンダーにアクセスすることになるため、初回実行時に権限の設定が必要になります。
このページで紹介する関数の概要
取得するための関数だけ知りたいという方は、タブリストから目的のタブを選択していただくことで、関数のサンプルをご覧いただけます。
- 全てのカレンダー(作成者不問)
- 全てのカレンダー(作成者が自分)
- IDを指定
- 名前を指定
作成者を問わず、全てのカレンダーを取得
/** @type { CalendarApp.Calendar[] } */
const calendars = CalendarApp.getAllCalendars();
自分が作成した全てのカレンダーを取得
/** @type { CalendarApp.Calendar[] } */
const calendars = CalendarApp.getAllOwnedCalendars();
カレンダーIDからカレンダーを取得
const CALENDAR_ID = "___取得するカレンダーのID___"
/** @type { CalendarApp.Calendar | null } */
const calendar = CalendarApp.getCalendarById(CALENDAR_ID);
カレンダー名からカレンダーを取得
const CALENDAR_NAME = "ToDo リスト"
/** @type { CalendarApp.Calendar[] } */
const calendars = CalendarApp.getCalendarsByName(CALENDAR_NAME);
作成者を問わず、全てのカレンダーを取得する
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}件存在します`);