サイトアイコン Googleスプレッドシート 完全攻略

【GAS】Googleカレンダーから複数のカレンダーの予定をLINEに送信する方法

LINEとの連携一覧

ご訪問ありがとうございます。

Googleシートマスターのひろしです。

前回

【GAS】Googleカレンダーから指定したカレンダーの予定をLINEに送信する方法
  • 指定したGoogleカレンダーの今日の予定がLINEに送信されます。
  • Googleカレンダーを開かなくても良いので便利です。
  • 今回は、とっても価値の高い方法をお伝えします。


    これを知ることであなたは、

    なので、サクッとマスターして

    と答えてあげてください。

    前回は、カレンダーを指定しましたが、今回はさらに複数のカレンダーを
    指定します。

    動画はこちら

    カレンダーの定義を増やして、カレンダーを比較している箇所に追加すればOKです。

    スクリプト

    複数のカレンダーを指定
    function ortest() {
    
    
      //   自分のカレンダーが4種(マイカレンダー)と、
      // 共有しているカレンダー(他のカレンダー)が2種あるのですが、
      // このうちマイカレンダー3つと他のカレンダー1つをLINEに通知したい場合は
      const CALENDER_NAME1 = "マイカレンダー1"  //取得するカレンダー名
      const CALENDER_NAME2 = "マイカレンダー2"  //取得するカレンダー名
      const CALENDER_NAME3 = "マイカレンダー3"  //取得するカレンダー名
      const CALENDER_NAME4 = "他のカレンダー"  //取得するカレンダー名
    
    
      let calendar_getName = "マイカレンダー4"  //カレンダーから取得したカレンダー名(calendar.getName())
    
    
      if ((calendar_getName == CALENDER_NAME1) ||
        (calendar_getName == CALENDER_NAME2) ||
        (calendar_getName == CALENDER_NAME3) ||
        (calendar_getName == CALENDER_NAME4)) {
    
    
        console.log("LINEに送信する")
      }
      else {
        console.log("LINEに送信しない")
    
    
      }
    
    
    }

     

    全体のスクリプト

     

    const LINE_NOTIFY_TOKEN = "*****あなたのトークン*****";
    const LINE_NOTIFY_API = "https://notify-api.line.me/api/notify";
    // const CALENDER_NAME = "new カレンダー1";   //取得するカレンダー名
    const CALENDER_NAME1 = "マイカレンダー1"  //取得するカレンダー名
    const CALENDER_NAME2 = "マイカレンダー2"  //取得するカレンダー名
    const CALENDER_NAME3 = "マイカレンダー3"  //取得するカレンダー名
    const CALENDER_NAME4 = "他のカレンダー"  //取得するカレンダー名
    
    
    function calendarToLine() {
      var calendars = CalendarApp.getAllCalendars();
      //  var text = "\n" + Utilities.formatDate(new Date(), 'JST', 'yyyy/MM/dd') + "\n" ;
      var text = "\n" + Utilities.formatDate(new Date(), 'JST', 'M月d日') + "\n";
    
    
      for (i in calendars) {
        var calendar = calendars[i];
        var events = calendar.getEventsForDay(new Date());
    
    
        /* 
            //カレンダー名を取得する
            if( events.length > 0 ) {
              text += "■ " + calendar.getName() + "\n";
            }
          */
    
    
        if ((calendar.getName() == CALENDER_NAME1) ||
          (calendar.getName() == CALENDER_NAME2) ||
          (calendar.getName() == CALENDER_NAME3) ||
          (calendar.getName() == CALENDER_NAME4)) {
    
    
          //      text += "■ " + calendar.getName() + "\n";
    
    
    
          //カレンダーの内容を取得する
          for (j in events) {
            var event = events[j];
            var title = event.getTitle();
            var start = toTime(event.getStartTime());
            var end = toTime(event.getEndTime());
            text += start + ' - ' + end + " " + title + '\n';
          }
    
    
          if (events.length > 0) {
            text += "\n";
          }
        }
      }
    
    
      sendToLine(text);//LINEにデータを送信する
    }
    
    
    //LINEにデータを送信する
    //text:送信するデータ
    function sendToLine(text) {
      var token = LINE_NOTIFY_TOKEN;
      var options =
      {
        "method": "post",
        "payload": "message=" + text,
        "headers": { "Authorization": "Bearer " + token }
    
    
      };
      UrlFetchApp.fetch(LINE_NOTIFY_API, options);
    }
    
    
    //'HH:mm'に変換する
    function toTime(str) {
      return Utilities.formatDate(str, 'JST', 'HH:mm');
    }

     

     

     

     

     

     

    最後までご覧いただきありがとうございます。

    つぎはこちら

    【GAS】Googleカレンダーの予定を曜日付きでLINEに送信する方法
  • Googleカレンダーの今日の予定がLINEに送信されます。
  • Googleカレンダーを開かなくても良いので便利です。
  •  

     

    LINEとの連携一覧

    GAS応用の一覧
    Googleカレンダー関連

    モバイルバージョンを終了