1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【GAS】終日&不参加のイベントを除いて取得する方法

Posted at

Google Apps Script(GAS)でGoogle Calenderの予定を取得するとき、
終日イベントや不参加予定のイベントは取得したくないなら、以下の2つの関数を使えば解決できる。

  • event.isAllDayEvent()

    • 選択したeventが終日イベントかを確認する
    • true or falseを返す
  • 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;
      }
    }
  
  };
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?