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

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

作成:2011-07-18 10:34
更新:2011-11-04 16:46

■カレンダーとイベントの作成・削除

データの取得が行えるようになったら、次はデータの作成について考えてみましょう。Googleカレンダーでは、各種のカレンダーにイベントが用意されています。ということは、とりあえず「カレンダーとイベントの作成」ができれば、かなり自由にデータを追加することができますね。

またこれらの削除についても一緒に覚えておけば、不要なものを取り除いたりできます。これらは、Calendar、CalendarEventオブジェクトにそれぞれ用意されています。では、それぞれ作成と削除について整理しましょう。

○カレンダーの作成
変数 = CalendarApp.createCalendar( 名前 );

○イベントの作成
変数 = Calendar.createEvent( タイトル, 開始日時, 終了日時 );
変数 = Calendar.createEvent( タイトル, 開始日時, 終了日時, オプション );

○終日イベントの作成
変数 = Calendar.createAllDayEvent( タイトル, 日にち );
変数 = Calendar.createAllDayEvent( タイトル, 日にち, オプション );

※オプションは、以下の項目からなる連想配列
description――説明
location――場所
guests――ゲスト(カンマで区切られたテキスト)
sendInvites――真偽値(招待メールを送るか否か)

○カレンダーの削除
《Calendar》.deleteCalendar();

○イベントの削除
《CalendarEvent》.deleteEvent();

この他、繰り返しイベントなどがありますが、これはこの後で説明します。通常のイベントについては、これで作成・削除が行えるようになるでしょう。

では、簡単な利用例を下のリスト欄にあげておきましょう。実行すると、アクティブシートにダイアログが現れ、イベント名を尋ねてきます。入力すると、「MySampleCal」というカレンダーに、現時点から1時間のイベントを作成します。MySampleCalカレンダーは、なければ自動的に作成されます。

ここでは、CalendarApp.getCalendarsByNameで指定の名前のカレンダーを取得しています。これはCalendar配列として返すので、配列のlengthがゼロなら、まだCalendarがないとしてcreateCalendarしています(ある場合は配列の一番最初のCalendarを使っています)。後は、現在の日時と、その1時間後の日時をそれぞれDateオブジェクトで用意し、createEventするだけです。基本的な流れさえわかれば、実に簡単ですね。

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

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

●プログラム・リスト●

function createCalEvent(){
	var sheet = SpreadsheetApp.getActiveSheet();
	var str = Browser.inputBox("イベントのテキスト:");
	var calName = "MySampleCal";
	var cals = CalendarApp.getCalendarsByName(calName);
	var cal = null;
	if (cals.length == 0){
		cal = CalendarApp.createCalendar(calName);
	} else {
		cal = cals[0];
	}
	var d1 = new Date();
	var d2 = new Date();
	d2.setHours(d2.getHours() + 1);
	cal.createEvent(str, d1, d2);
}

※関連コンテンツ

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