Google Apps Script(GAS)でGoogle Calenderの予定を取得するとき、
終日イベントや不参加予定のイベントは取得したくないなら、以下の2つの関数を使えば解決できる。
-
event.isAllDayEvent()
- 選択したeventが終日イベントかを確認する
-
true
orfalse
を返す
-
event.getMyStatus()
- 選択したeventでの自分の状態を確認できる
- outputの種類
-
INVITED
:予定には招待されたが、参加表示をしなかった場合 -
YES
:参加しますか?に**「はい」**を押した場合 -
NO
:参加しますか?に**「いいえ」**を押した場合 -
MAYBE
:参加しますか?に**「未定」**を押した場合 -
OWNER
:その予定の主催者である場合- (主催者は上記の
YES``NO``MAYBE
より優先される)
- (主催者は上記の
-
###例)Google calenderに登録された当日の予定の中、終日&不参加予定以外を取得するscript
getSchedulefromGcal.gs
function getSchedulefromGcal() {
//1 スプレッドシートを読み込む
var sp =SpreadsheetApp.getActiveSheet();
//スプレッドシートをクリア
sp.clear();
//2 カレンダーをIDで読み込む
var cal=CalendarApp.getCalendarById('YourMailAddress@gmail.com');
//3 カレンダーのイベントの期間を指定
var date = new Date();
var today = new Date(date.getFullYear(),date.getMonth(),date.getDate(),0,0);
var endday = new Date(date.getFullYear(),date.getMonth(),date.getDate()+0,23,59);
var event = cal.getEvents(today,endday);
var j=1;
//4 イベントをスプレッドシートへ書き出す
for(var i=1;i<event.length+1; i++){
var status = event[i-1].getMyStatus();
if(event[i-1].isAllDayEvent() == false && status != "NO"){ //終日&不参加じゃない予定だけ
sp.getRange('a'+j).setValue(event[i-1].getTitle()); //イベントタイトルを書き出し
j=j+1;
}
}
};