【GAS】Google 캘린더의 예정을 Slack 통지

2127 단어 슬랙calendargas

하고 싶은 일



슬랙에 Google 캘린더 일정을 알리고 싶습니다.
아침 8시에 실행하여 대략 1일의 예정을 통지한다

슬랙 메일 전송 사용



slack의 내 프로필 → 환경 설정 → 메시지 및 미디어에서 Slack으로 메일 전송 사용
이메일 주소를 복사합니다.



Google Apps Script 만들기



slack의 이메일 주소에 전달할 이메일 주소 포함
var destination_Email = '[SlackのEmailアドレス]';

function getCalenderEvents() {
  var now = new Date();
  var twoHoursFromNow = new Date(now.getTime() + (10 * 60 * 60 * 1000));
  var events = CalendarApp.getDefaultCalendar().getEvents(now, twoHoursFromNow);
  for (var i = 0; i < events.length; i++) {
    var title = events[i].getTitle();
    var startTime = events[i].getStartTime();
    var endTime = events[i].getEndTime();
    var duration = (endTime - startTime) / (1000*60) / (60);
    var detail = events[i].getDescription();
    var location = events[i].getLocation();

    startTime = formatDate(startTime, 'JST');
    endTime = formatDate(endTime, 'JST');

    sendSlackfromGmail(title, startTime, endTime, duration, detail, location);

  }//for (var i = 0; i < events.length; i++) {
}//function getCalenderEvents() {

function sendSlackfromGmail(title, startTime, endTime,  duration, detail, location) {
  var body = '開始時間:' + startTime + '\n' + '終了時間:' + endTime + '\n' + '会議時間:' + duration + '\n' + '詳細:' + detail + '\n' + '場所:' + location
  GmailApp.sendEmail(destination_Email, title, body);

}//function sendSlackfromGmail() {

function formatDate(date, timeZone, format) {
  if (date === '') {
    return ''
  } else {
    var format = 'yyy/MM/dd HH:mm';
    var retval = Utilities.formatDate(date, timeZone, format);
    return retval;
  }
}//function formatDate(date, timeZone, format) {

소감



누군가와 공유할 필요가 없는 정보라면 개인에게 전송하는 것이 좋다고 생각했습니다.
또, 앱 작성이 필요 없기 때문에 간단하게 도입할 수 있습니다.

좋은 웹페이지 즐겨찾기