Guest User

Untitled

a guest
Apr 8th, 2018
312
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.86 KB | None | 0 0
  1. //スケジュールアシスタントが今後7日間の予定を投稿してくれる
  2.  
  3. function GoogleCalToMSTeams() {
  4. var list = "";
  5. var s;
  6.  
  7. s = listupEvent("XXXXXXXXXXXXXXXXX@group.calendar.google.com"); //Boss' schedule
  8. if (s != "") list += " \n##■XXX's schedule \n" + s + " \n";
  9.  
  10. s = listupEvent("XXXXXXXXXXXXXXXXX@group.calendar.google.com"); //OOO
  11. if (s != "") list += " \n##■Out of office (staff) \n" + s + " \n";
  12.  
  13. s = listupEvent("XXXXXXXXXXXXXXXXX@group.calendar.google.com"); //XXX Group's Events
  14. if (s != "") list += " \n##■XXX events \n" + s + " \n";
  15.  
  16. s = listupEvent("XXXXXXXXXXXXXXXXX@group.calendar.google.com"); //Office's Events
  17. if (s != "") list += " \n##■XXX Office events \n" + s + " \n";
  18.  
  19. s = listupEvent("XXXXXXXXXXXXXXXXX@group.calendar.google.com"); //Due dates
  20. if (s != "") list += " \n##■Due dates \n" + s+ " \n";
  21.  
  22. s = listupEvent("XXXXXXXXXXXXXXXXX@group.calendar.google.com"); //Office closing dates
  23. if (s != "") list += " \n##■Office closing dates \n" + s + " \n";
  24.  
  25. Logger.log(list);
  26.  
  27. if (list != "") {
  28. var payload = {
  29. "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",
  30.  
  31. }
  32.  
  33. postTeams(payload);
  34. }
  35.  
  36. }
  37.  
  38. //1週間の予定をリストアップ
  39. function listupEvent(cal_id)
  40. {
  41. var list = "";
  42. var cal = CalendarApp.getCalendarById(cal_id);
  43.  
  44. //1週間分の予定を確認
  45. var now = new Date();
  46. var end = new Date(now.getTime() + (7 * 24 * 60 * 60 * 1000));// 1週間後
  47. var events = cal.getEvents(now, end);
  48.  
  49.  
  50. for(var i=0; i < events.length; i++){
  51. s = "";
  52.  
  53. if (events[i].isAllDayEvent()) {
  54. var startDate = new Date(events[i].getStartTime());
  55. var endDate = new Date(events[i].getEndTime()-(1 * 24 * 60 * 60 * 1000));
  56.  
  57. if ((endDate-startDate)/(24 * 60 * 60 * 1000) <2) {
  58. s += Utilities.formatDate(events[i].getStartTime(),"GMT+0900","dd MMM ");
  59. } else {
  60. s += Utilities.formatDate(events[i].getStartTime(),"GMT+0900","dd MMM ");
  61. s += Utilities.formatDate(endDate, "GMT+0900","- dd MMM ");
  62. }
  63. } else {
  64. s += Utilities.formatDate(events[i].getStartTime(),"GMT+0900","dd MMM HH:mm");
  65. s += Utilities.formatDate(events[i].getEndTime(), "GMT+0900","-HH:mm ");
  66. }
  67. s += events[i].getTitle();
  68. Logger.log(s);
  69.  
  70. list += s + " \n";
  71. }
  72.  
  73. return list;
  74. }
  75.  
  76. //MS Teamsへポスト
  77. function postTeams(payload)
  78. {
  79. // POSTオプション
  80. var options = {
  81. "method" : "POST",
  82. "payload" : JSON.stringify(payload)
  83. }
  84.  
  85. // アクセス先
  86. var url = "XXXXXXXXXXXXXXXXXXXXX"; //WebHook URL
  87. // POSTリクエスト
  88. var response = UrlFetchApp.fetch(url, options);
  89. // HTML結果を取得(引数のcharsetは設定したほうが良い)
  90. var content = response.getContentText("UTF-8");
  91.  
  92. }
Add Comment
Please, Sign In to add comment