7
11

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】スプレッドシートを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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?