이번에는 구글 앱스 스크립트를 사용하여 구글 캘린더에 접근하여 일정 정보를 수집하는 스크립트를 만들어보겠습니다.
개요
- 구글 캘린더에 접근하여 실행 당일~7일 후의 일정을 수집한다.
- 수집한 일정을 목록으로 만든다.
- 만든 일정 목록을 메일로 보낸다.
저는 이 스크립트를 매주 월요일 아침에 실행하도록 설정하여 월요일에 그 주의 일정을 확인하는데 사용하고 있습니다.
구글 캘린더에 접근하기 위해 참고한 페이지:
앱스 스크립트를 작성
https://script.google.com/home 에 접속하여 [새 프로젝트]버튼을 클릭합니다.
스크립트 편집 화면에 들어옵니다.
스크립트 편집 화면에 아래 코드를 넣습니다.
function getCalendar_sendMail() {
var weekdays = ['일요일', '월요일', '화요일', '수요일','목요일','금요일','토요일'];
// 현재 날짜, 7일후 날짜 구하기
var now = new Date();
var day7after = new Date();
day7after.setDate(now.getDate() + 7);
var events = CalendarApp.getDefaultCalendar().getEvents(now, day7after);
// 일정이 하나도 없는 경우, 스크립트를 종료함.
if(events.length == 0) return;
// 메일 내용
var mailbody = "<h2>이번 주 일정</h2>";
for(var cei = 0; cei < events.length; cei++){
var ceTitle = events[cei].getTitle();
var ceStart = events[cei].getStartTime();
var ceEnd = events[cei].getEndTime();
var ceCompare = new Date();
ceCompare.setDate(ceStart.getDate() + 1);
var ceWeekday = ceStart.getDay();
var ceEvent = "<ul> <li> " + weekdays[ceWeekday] + "</li> <ul>";
if(events[cei].isAllDayEvent() == true){
if(ceCompare < ceEnd){
ceEvent = ceEvent
+ " <li> [날짜] " + Utilities.formatDate(ceStart, 'Asia/Seoul', "MM/dd (E)")
+ " ~ " + Utilities.formatDate(ceEnd, 'Asia/Seoul', "MM/dd (E)")+ "</li>"
+ " <li> [일정] " + ceTitle + "</li> </ul> </ul> ";
}else{
ceEvent = ceEvent
+ " <li> [날짜] " + Utilities.formatDate(ceStart, 'Asia/Seoul', "MM/dd (E)") + "</li>"
+ " <li> [일정] " + ceTitle + "</li> </ul> </ul> ";
}
}else{
if(ceStart.getDay() == ceEnd.getDay()){
ceEvent = ceEvent
+ " <li> [날짜] " + Utilities.formatDate(ceStart, 'Asia/Seoul', "MM/dd (E) HH:mm")
+ " ~ " + Utilities.formatDate(ceEnd, 'Asia/Seoul', "HH:mm")+ "</li>"
+ " <li> [일정] " + ceTitle+ "</li> </ul> </ul> ";
}else{
ceEvent = ceEvent
+ " <li> [날짜] " + Utilities.formatDate(ceStart, 'Asia/Seoul', "MM/dd (E) HH:mm")
+ " ~ " + Utilities.formatDate(ceEnd, 'Asia/Seoul', "MM/dd (E) HH:mm")+ "</li>"
+ " <li> [일정] " + ceTitle+ "</li> </ul> </ul> ";
}
}
mailbody = mailbody + ceEvent + "<br>"
}
// 메일 주소
var recipient = "<일정을 받을 메일 주소>"; // 메일 주소를 넣여주세요.
// 메일 제목
var subject = "이번 주 예정 알림";
// 메일 내용
var htmlbody = mailbody ;
// 메일 보내기
MailApp.sendEmail({
to: recipient,
subject: subject,
htmlBody: htmlbody,
});
}
프로젝트를 저장합니다.

▶(실행)버튼을 클릭합니다.
처음 실행하실 때, 권한 요청을 해옵니다. 실행을 허용해주세요.
(스크린샷은 생략합니다. 자세한 내용은 앱스 스크립트 사용법 (1) 메일 보내기 > 실행 권한 허용 을 확인해주세요.)
스크립트 실행
스크립트를 허용 후 다시 실행하면, 메일이 도착합니다.
메일 내용에서 구글 달력에 설정해둔 일정 목록을 확인할 수 있습니다.
아래는 테스트 전에 구글 달력에 미리 설정해둔 일정입니다.
트리거 설정
이제는 이 메일을 지정한 시간에 매주 받도록 설정해보겠습니다.
시계모양 아이콘으로 된 (현재 프로젝트의 트리거) 버튼을 클릭합니다.
[트리거 추가] 버튼을 클릭합니다.
트리거 설정화면이 뜹니다.
트리거에 시간 기반, 주 단위 타이머, 매주 월요일, 원하는 시간대를 설정 후 [저장]을 클릭합니다.
트리거 설정이 완료되었습니다.
설정한 시간에 메일이 도착하면 성공입니다!
아래는 테스트 전에 구글 달력에 미리 설정해둔 일정입니다.
구글 앱스 스크립트의 다른 활용법을 알고싶으시다면!
» G Suite 사용법 #5 앱스 스크립트 활용 예시 모음

injooinjoo님에게 덧글 달기 응답 취소