LoginSignup
7
11

More than 1 year has passed since last update.

【GAS】スプレッドシートをGoogleカレンダーに追加、グループLINEに通知

Last updated at Posted at 2021-10-29

asadad.png

GASで、スプレッドシートの情報をGoogleカレンダーに追加、グループラインに内容を通知できるようにしました。

使うもの
・スプレッドシート
・Googleカレンダー
・LINENotify

完成

スプレッドシートのデータを

IMG-3216-1024x468.jpg

Googleカレンダーに追加①

IMG-3225-1024x678.jpg

Googleカレンダーに追加②

1-1.jpg

グループLINEに通知

S__2859025-485x865.jpg

コード

var LINE_NOTIFY_TOKEN = "トークン";
var LINE_NOTIFY_API = "https://notify-api.line.me/api/notify";

//LINEにメッセージを送る
function sendLineMessage(msg) {
  var response = UrlFetchApp.fetch(LINE_NOTIFY_API, {
    "method": "post",
    "headers": {
      "Authorization": "Bearer " + LINE_NOTIFY_TOKEN
    },
    "payload": {
      "message": msg
    }
  });
}

function test() {
  var myCal = CalendarApp.getCalendarById('カレンダーID'); 

  var mySheet = SpreadsheetApp.getActiveSheet(); //シートを取得
  var dat = mySheet.getDataRange().getValues(); //シートデータを取得
  var spreadsheet = SpreadsheetApp.openById('スプレッドシートID');//シートの指定
  var mySheet = spreadsheet.getSheetByName('tab名前');//タブの指定

  for (var i = 1; i < dat.length; i++) {
    if (dat[i][7] == "") {//工事日予定日が未定の場合
      continue;
    } else if(dat[i][6]=="キャンセル"){//ステータスがキャンセルの場合
      continue;
    }else if (dat[i][0] == "") {//カレンダー未更新の場合


      /* 日時をセット */
      var aaa = new Date(dat[i][7])//工事日
      var day = Utilities.formatDate(aaa, "Asia/Tokyo", "yyyy/MM/dd")

      var startDay = new Date(Utilities.formatDate(dat[i][7], "Asia/Tokyo", "yyyy/MM/dd") + " " +
        "09:00:00");
      var endDay = new Date(Utilities.formatDate(dat[i][7], "Asia/Tokyo", "yyyy/MM/dd") + " " +
        "09:00:00");

      /* イベントの追加・スプレッドシートへの入力 */
      var myEvt = myCal.createEvent(dat[i][2], startDay, endDay,
        {
          description: "獲得日:" + day + "\n商材名:" + dat[i][5] + "\nステータス:" + dat[i][6] + "\n担当:" + dat[i][8]
          , location: dat[i][4]
        });

      sendLineMessage("\n開通日:" + day + "\n" + dat[i][2] + "\n" + "商材名:" + dat[i][5] +
        "\n担当:" + dat[i][8]);

      dat[i][0] = '更新済み';
    }
  }
  mySheet.getRange(1, 1, i, 9).setValues(dat); //データをシートに出力

}

LINENotify設定

0535C2EC-23BB-4CCC-8D10-94DA1AF1733B.jpg

5451AA61-6976-41D9-8E63-CA91DA6A248D.jpg

C277A184-A819-400D-9B13-0094DD2F2E2C.jpg

Googleカレンダー設定

E377A0E3-33E1-4D9D-85BC-22D29C982009.jpg

13784208-EDF6-495A-B5FC-8D343F439C38.jpg

C9C5E625-A47F-4EB0-8E32-B70ED6400F17.jpg

16C04E8C-6317-44FF-B265-7D76E9BF8748.jpg

B9FFFCF7-41B5-4241-90B9-9F56F7590D51.jpg

スプレッドシート設定

D79064F9-47E5-48BE-ADAF-B7182656C98A.jpg

↑textファイルダウンロード

E0E7C31C-CCDA-4ABB-840D-D50EE2F31986.jpg

コード説明

配列番号

0E905F18-4A24-42CF-A69E-AD5B20C64210.jpg

Googleカレンダー

7DC239E8-9C85-4CE9-B3C0-1014482A15ED.jpg

LINENotify

E35A154A-D334-43D5-9945-6B6AD97407C5.jpg

スプレッドシートの情報に合わせて、条件式と配列番号を変更するだけで

簡単に利用できますので是非お試し下さい。

詳細な設定方法は下記URLを参照してください。

7
11
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
7
11