Googleカレンダーにアクセスする (3/5)
作成:2011-07-18 10:30
更新:2011-11-04 16:45
更新:2011-11-04 16:45
■イベントとCalendarEventについて
Calendarオブジェクトが取得できたら、次はその中の「イベント」について利用できるようにしましょう。
カレンダーの中に用意されている各種のイベントは、「CalendarEvent」というオブジェクトとして用意されています。これはCalendarから、各種のメソッドを使って取得することができます。これは、指定の日にちにあるイベントを得るものと、一定の範囲内にあるイベントを得るものがあります。
○指定の日のイベントを得る
○指定の範囲のイベントを得る
それぞれ、引数の日時はDateオブジェクトを使って指定します。また「フィルター」というのは、ゲストの参加に関するステータスを示すGuestStatusというオブジェクトを使ってフィルター処理をするものです。これはステータスに関する以下のようなプロパティを持ったオブジェクトです。
INVITED――返答待ち
MAYBE――未定
NO――いいえ
OWNER――オーナー
YES――はい
要するにゲストの参加状況に関するステータスを指定して絞り込みを行うためのものですね。これらの値を配列として引数に指定することでフィルター処理を行えます。
さて肝心のCalendarEventに目を向けましょう。この中には、イベントに関する各種の情報が保管されています。では、各項目ごとにメソッドを整理しましょう。
○イベントIDを得る
○タイトルに関するもの
○説明文に関するもの
○場所に関するもの
○作成日時に関するもの
○終日イベントに関するもの
○開始・終了日時に関するもの
○公開に関するもの
※Visibility値は、Visibilityオブジェクトにある以下のプロパティから指定。
とりあえず、このぐらいが扱えるようになれば、イベントの主な操作は行えるようになるでしょう。――では、実際の利用例を以下にあげておきます。指定したカレンダーから今月のイベントを取得し、各イベントのタイトル、説明、開始日時、終了日時をアクティブシートに書き出します。CalendarApp.getCalendarByIdの引数には、それぞれのカレンダーのIDを指定しておいてください。
カレンダーの中に用意されている各種のイベントは、「CalendarEvent」というオブジェクトとして用意されています。これはCalendarから、各種のメソッドを使って取得することができます。これは、指定の日にちにあるイベントを得るものと、一定の範囲内にあるイベントを得るものがあります。
○指定の日のイベントを得る
変数 = 《Calendar》.getEventsForDay( 日にち );
変数 = 《Calendar》.getEventsForDay( 日にち , フィルター );
○指定の範囲のイベントを得る
変数 = 《Calendar》.getEvents( 開始日時 , 終了日時 );
変数 = 《Calendar》.getEvents( 開始日時 , 終了日時 , フィルター );
それぞれ、引数の日時はDateオブジェクトを使って指定します。また「フィルター」というのは、ゲストの参加に関するステータスを示すGuestStatusというオブジェクトを使ってフィルター処理をするものです。これはステータスに関する以下のようなプロパティを持ったオブジェクトです。
INVITED――返答待ち
MAYBE――未定
NO――いいえ
OWNER――オーナー
YES――はい
要するにゲストの参加状況に関するステータスを指定して絞り込みを行うためのものですね。これらの値を配列として引数に指定することでフィルター処理を行えます。
さて肝心のCalendarEventに目を向けましょう。この中には、イベントに関する各種の情報が保管されています。では、各項目ごとにメソッドを整理しましょう。
○イベントIDを得る
変数 =《CalendarEvent》.getId();
○タイトルに関するもの
変数 =《CalendarEvent》.getTitle();
《CalendarEvent》.setTitle( テキスト );
○説明文に関するもの
変数 =《CalendarEvent》.getDescription();
《CalendarEvent》.setDescription( テキスト );
○場所に関するもの
変数 =《CalendarEvent》.getLocation();
《CalendarEvent》.setLocation( テキスト );
○作成日時に関するもの
変数 =《CalendarEvent》.getDateCreated();
○終日イベントに関するもの
変数 =《CalendarEvent》.isAllDayEvent();
《CalendarEvent》.setAllDayEvent( 真偽値 );
○開始・終了日時に関するもの
変数 =《CalendarEvent》.getStartTime();
変数 =《CalendarEvent》.getEndTime();
《CalendarEvent》.setTime( 開始日時 , 終了日時 );
○公開に関するもの
変数 =《CalendarEvent》.getVisibility();
《CalendarEvent》.setVisibility( Visibility値 );
※Visibility値は、Visibilityオブジェクトにある以下のプロパティから指定。
CONFIDENTIAL DEFAULT PRIVATE PUBLIC
とりあえず、このぐらいが扱えるようになれば、イベントの主な操作は行えるようになるでしょう。――では、実際の利用例を以下にあげておきます。指定したカレンダーから今月のイベントを取得し、各イベントのタイトル、説明、開始日時、終了日時をアクティブシートに書き出します。CalendarApp.getCalendarByIdの引数には、それぞれのカレンダーのIDを指定しておいてください。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
function getCal(){ var sheet = SpreadsheetApp.getActiveSheet(); var cal = CalendarApp.getCalendarById( …カレンダーIDを指定… ); var d1 = new Date(); d1.setDate(1); d1.setHours(0); d1.setMinutes(0); d1.setSeconds(0); var d2 = new Date(); d2.setDate(1); d2.setMonth(d2.getMonth() + 1); d2.setHours(0); d2.setMinutes(0); d2.setSeconds(0); Logger.log(d1); Logger.log(d2); var evts = cal.getEvents(d1,d2); var index = 1; if (evts.length > 0){ for (var i in evts){ var evt = evts[i]; sheet.getRange(index, 1).setValue(evt.getTitle()); sheet.getRange(index, 2).setValue(evt.getDescription()); sheet.getRange(index, 3).setValue(evt.getStartTime()); sheet.getRange(index, 4).setValue(evt.getEndTime()); index++; } } }
※関連コンテンツ
「初心者のためのGoogle Apps Scriptプログラミング入門」に戻る