Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //スケジュールアシスタントが今後7日間の予定を投稿してくれる
- function GoogleCalToMSTeams() {
- var list = "";
- var s;
- s = listupEvent("XXXXXXXXXXXXXXXXX@group.calendar.google.com"); //Boss' schedule
- if (s != "") list += " \n##■XXX's schedule \n" + s + " \n";
- s = listupEvent("XXXXXXXXXXXXXXXXX@group.calendar.google.com"); //OOO
- if (s != "") list += " \n##■Out of office (staff) \n" + s + " \n";
- s = listupEvent("XXXXXXXXXXXXXXXXX@group.calendar.google.com"); //XXX Group's Events
- if (s != "") list += " \n##■XXX events \n" + s + " \n";
- s = listupEvent("XXXXXXXXXXXXXXXXX@group.calendar.google.com"); //Office's Events
- if (s != "") list += " \n##■XXX Office events \n" + s + " \n";
- s = listupEvent("XXXXXXXXXXXXXXXXX@group.calendar.google.com"); //Due dates
- if (s != "") list += " \n##■Due dates \n" + s+ " \n";
- s = listupEvent("XXXXXXXXXXXXXXXXX@group.calendar.google.com"); //Office closing dates
- if (s != "") list += " \n##■Office closing dates \n" + s + " \n";
- Logger.log(list);
- if (list != "") {
- var payload = {
- "text" : "Hi, here's the latest schedule for the next 7 days. \n" + " \n" + list + " \n" + "\n###Abbreviations: \n"+"* BT = Business trip \n* OOO = Out of office",
- }
- postTeams(payload);
- }
- }
- //1週間の予定をリストアップ
- function listupEvent(cal_id)
- {
- var list = "";
- var cal = CalendarApp.getCalendarById(cal_id);
- //1週間分の予定を確認
- var now = new Date();
- var end = new Date(now.getTime() + (7 * 24 * 60 * 60 * 1000));// 1週間後
- var events = cal.getEvents(now, end);
- for(var i=0; i < events.length; i++){
- s = "";
- if (events[i].isAllDayEvent()) {
- var startDate = new Date(events[i].getStartTime());
- var endDate = new Date(events[i].getEndTime()-(1 * 24 * 60 * 60 * 1000));
- if ((endDate-startDate)/(24 * 60 * 60 * 1000) <2) {
- s += Utilities.formatDate(events[i].getStartTime(),"GMT+0900","dd MMM ");
- } else {
- s += Utilities.formatDate(events[i].getStartTime(),"GMT+0900","dd MMM ");
- s += Utilities.formatDate(endDate, "GMT+0900","- dd MMM ");
- }
- } else {
- s += Utilities.formatDate(events[i].getStartTime(),"GMT+0900","dd MMM HH:mm");
- s += Utilities.formatDate(events[i].getEndTime(), "GMT+0900","-HH:mm ");
- }
- s += events[i].getTitle();
- Logger.log(s);
- list += s + " \n";
- }
- return list;
- }
- //MS Teamsへポスト
- function postTeams(payload)
- {
- // POSTオプション
- var options = {
- "method" : "POST",
- "payload" : JSON.stringify(payload)
- }
- // アクセス先
- var url = "XXXXXXXXXXXXXXXXXXXXX"; //WebHook URL
- // POSTリクエスト
- var response = UrlFetchApp.fetch(url, options);
- // HTML結果を取得(引数のcharsetは設定したほうが良い)
- var content = response.getContentText("UTF-8");
- }
Add Comment
Please, Sign In to add comment