GASで、スプレッドシートの情報をGoogleカレンダーに追加、グループラインに内容を通知できるようにしました。
使うもの
・スプレッドシート
・Googleカレンダー
・LINENotify
#完成
#スプレッドシートのデータを
#Googleカレンダーに追加①
#Googleカレンダーに追加②
#グループLINEに通知
#コード
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); //データをシートに出力
}
↑textファイルダウンロード
スプレッドシートの情報に合わせて、条件式と配列番号を変更するだけで
簡単に利用できますので是非お試し下さい。
詳細な設定方法は下記URLを参照してください。