libro
www.tuyano.com
初心者のためのGoogle Apps Scriptプログラミング入門

Googleカレンダーにアクセスする (2/5)

作成:2011-07-18 10:27
更新:2011-11-04 16:44

■CalendarAppとCalendar

では、まずカレンダーの利用について説明をしていきましょう。Googleカレンダーでは、複数のカレンダーを扱うことができます。これらを取得するためのメソッド類もちゃんと備えられています。

カレンダーの取得は、CalendarAppオブジェクトを使って行います。Googleカレンダーでは、多数のカレンダーを用意することができます。また自分のものだけでなく、他人の作ったカレンダーを共有して利用することもできます。そうしたさまざまなカレンダーについて、必要なものを取得できるよう、CalendarAppには多数のカレンダー取得メソッドが用意されています。

○デフォルトカレンダーを得る
変数 = CalendarApp.getDefaultCalendar();

○カレンダーIDを指定して得る
変数 = CalendarApp.getCalendarById( カレンダーID );

この2つが、Calendarオブジェクト取得の基本といってよいでしょう。いずれも実行すると、それに対応するカレンダーを管理するCalendarオブジェクトを返します。――この他、対応するカレンダーを配列にまとめて取り出すものも用意されています。

○名前を指定して得る
変数 = CalendarApp.getCalendarsByName( カレンダー名 );
変数 = CalendarApp.getOwnedCalendarsByName( カレンダー名 );

○全カレンダーを得る
変数 = CalendarApp.getAllCalendars();
変数 = CalendarApp.getAllOwnedCalendars();

いずれも2種類のメソッドが用意されていますが、「Owner」というテキストがメソッド名に含まれているものは、自身が作成したカレンダーのみを取得するためのものです。これがメソッド名に含まれていないものは、自分が作成したものでなくとも、使用しているものはすべて取得します。

こうして取り出したCalendarオブジェクトには、カレンダーに関する各種の情報を取得したり再設定するためのメソッドが一通り用意されています。各属性ごとにメソッドを整理しておきましょう。

○カレンダーID
変数 =《Calendar》.getId();

○カレンダーの名前
変数 =《Calendar》.getName();
《Calendar》.setName( テキスト );

○カレンダーの説明
変数 =《Calendar》.getDescription();
《Calendar》.setDescription( テキスト );

○カレンダーの色
変数 =《Calendar》.getColor();
《Calendar》.setColor( Color値 );

○カレンダーの選択状態
変数 =《Calendar》.isSelected();
《Calendar》.setSelected( 真偽値 );

○カレンダーの表示状態
変数 =《Calendar》.isHidden();
《Calendar》.setHidden( 真偽値 );

注意すべきは、色に関する属性です。色は、Google Apps Scriptでは「Color」というオブジェクトとして用意されていますが、これは、実は主な色の名前をプロパティとして用意しているだけのもので、値そのものはスタイルシートで用いられている値(16進数値など)で設定されます。

では、簡単な利用例を以下にあげておきましょう。これは、全カレンダーの内容をアクティブシートに書き出すものです。実行すると、例によってユーザーの承認を求めてきます。承認すると、Googleカレンダーへのアクセスを確認する新しいウインドウが現れるので、そこでアクセスを許可してください。以後、スクリプトからGoogleカレンダーを利用できるようになります。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

function getCal(){
	var sheet = SpreadsheetApp.getActiveSheet();
	var cals = CalendarApp.getAllCalendars();
	var index = 1;
	for (var i in cals){
		var cal = cals[i];
		sheet.getRange(index, 1).setValue(cal.getName());
		sheet.getRange(index, 2).setValue(cal.getId());
		sheet.getRange(index, 3).setValue(cal.getDescription());
		sheet.getRange(index, 4).setValue(cal.getColor());
		sheet.getRange(index, 5).setValue(cal.isSelected());
		index++;
	}
}

※関連コンテンツ

「初心者のためのGoogle Apps Scriptプログラミング入門」に戻る