Make를 활용한 구글 캘린더에 일정 등록 업무 자동화
구글 캘린더를 잘 사용하시는 분은 티켓을 예매할 때마다 일정 등록하기 불편하지 않으셨나요? 저는 스마트폰을 샀던 20살 부터 캘린더를 아주 오래 써왔어어 모든 일정을 다 캘린더에 등록해두는 편입니다. 버스, 기차, 영화 일정도 모두 캘린더에 등록되어 있죠.
올해에는 지방 강의 일정이 많아서 기차표 일정을 캘린더에 등록하는게 여간 불편한 일이 아니었어요. 그래서 이번 기회에 자동화 시스템을 보았답니다. 시나리오는 단순합니다. 티켓을 예매한 다음 티켓 화면을 캡쳐하고, 해당 화면을 복사하고 단축어 버튼을 누르면 구글 캘린더에 등록이 되는거죠.
자세한 내용은 이 유튜브 영상을 살펴보세요.
이제는 그 방법을 알려드릴게요.
준비물
준비물은 여러가지가 필요합니다.
아이폰
6단계에서 사용할 단축어가 있는데요, 단축어는 아이폰에 있는 숏컷 shortcut 기능입니다. 사용자가 지정한 행동들을 자동으로 실행해주는 기능이죠. 이 기능을 이용해서 클립보드에 있는 티켓 이미지 데이터를 Make로 보낼 예정입니다.
Make 계정
업무 자동화 에는 Make라는 노코드 플랫폼을 이용할 예정입니다. Make는 Zapier와 같이 노코드 업무 도구로 코딩없이 여러 서비스들을 서로 이어서 데이터를 전송하는 역할을 합니다. 예를 들면 설문 데이터와 구글 시트, 노션, 솔라피를 연결해 설문 제출한 사람들에 대한 정보를 받아서 구글 시트와 노션에 저장하고 문자로 안내를 하는 방식이죠.
아직 회원가입을 하지 않으셨다면 여기를 통해 회원가입을 해보세요 🙂
OpenAI 유료 계정
이번 프로젝트에는 ChatGPT의 유료 계정이 필요합니다. API를 사용하기 때문인데요, 무료 사용자는 아쉽게도 이 시나리오를 따라할 수 없습니다. ㅠㅠ
구글 계정
구글 계정이 있으면 구글 클라우드 플랫폼을 통해 API 정보를 받아올 수 있습니다.
Make 회원가입하기
이제 Make에 회원가입을 해야하는데요, 이 링크를 통해 회원가입을 진행하시면 1달 무료 혜택을 받으실 수 있습니다. Make는 기본적으로 무료로 사용하실 수 있으며 1,000개의 오퍼레이션(행동 단위)가 주어집니다. 이번에 만들어볼 시나리오는 총 5개의 오퍼레이션이 드니까 200번을 해볼 수 있는 양이네요. 하지만 Make를 사용하다보면 1,000번의 오퍼레이션은 부족할 수 있기 때문에 미리 10,000개를 확보해두시면 좋습니다.
시나리오 만들기
Make에 회원가입을 했다면, 이제 시나리오를 만들 차례입니다. 로그인 후 들어온 화면 오른쪽 상단에서 Create a new scinario를 눌러주세요.
Webhook 모듈 추가하기
시나리오의 처음을 위해 모듈을 추가합니다. 처음 시나리오 추가에 들어오면 화면에 회색 동그라미에 + 버튼이 보일텐데요. 이 버튼을 누르면 Make에서 지원하는 모든 모듈을 볼 수 있습니다. 이중에서 우리는 Webhook이라는 모듈을 추가하고 Custom Webhook을 선택하겠습니다.
(조금 더 자세한 내용은 유튜브 영상을 참고해주세요)
Image 모듈 추가하기
다음은 Webhook 아이콘 오른쪽에 붙어 있는 + 를 눌러 Webhook과 이어지는 Image 모듈을 생성해줍니다. 모듈이 2,000개 이상이기 때문에 스크롤로 찾기는 쉽지 않으니 검색을 이용해주세요. Image 모듈에서도 Convert a format을 선택해주세요.
아이폰에서 단축어 설정하기
[최종] Make를 활용하여 티켓 일정 구글 캘린더에 등록하기 업무 자동화_6이제 아이폰에서 단축어를 설정할 차례입니다. 단축어 앱을 켜고 새로운 단축어를 추가하여 ‘클립보드 가져오기’와 ‘URL 콘텐츠 가져오기’를 차례로 추가해줍니다. 이후 URL에는 Make에서 만들었던 웹훅의 Copy address to clipboard를 눌러 URL에 붙여넣어주세요.
메소드: POST
본문 요청 : 파일
파일: 클립보드
를 선택해주세요.
Make 와 ChatGPT 연결하기
이제는 Make에 ChatGPT를 연결할 차례입니다. Make에서 Image 모듈 오른쪽 + 버튼을 눌러 ChatGPT 모듈을 추가해주세요. 우리는 이미지를 불러올 예정이기 때문에 Analyze images를 선택해야 합니다. ChatGPT 모듈이 추가되면, Account 연결을 위해 Connect 옆에 Add를 누르고 계정 연결을 해주세요.
ChatGPT의 API를 연결하라고 나오는데, 이 링크에 들어가서 아래 이미지처럼 Create new secret key를 눌러 API키를 발급 받아 복사해주세요.
이후 Connection에 API를 붙여 넣고, ChatGPT를 연결해줍니다. 모델, image 파일을 선택해주세요. 그리고 아래와 같은 프롬프트를 입력해주세요.
# Order:
아래 제공된 이미지는 티켓 정보를 포함하고 있습니다.
- 티켓의 종류(기차표, 버스표, 영화표)를 자동으로 식별하고, 각 티켓에 포함된 정보를 JSON 형식으로 변환하세요.
- JSON은 캘린더에 등록하기 적합한 통일된 구조로 작성되어야 하며, 연도가 누락된 경우 오늘 이후의 연도를 자동으로 보완합니다.
- 오늘: {{now}}
# Constrains:
## 0. 아주 중요한 지침:
"```JSON"과 같은 단어는 제외하세요. 반드시 "{}"와 "{}" 안의 내용만 출력하세요.
## 1. 연도 자동 보완:
이미지에서 날짜 정보에 연도가 포함되어 있지 않으면, 현재 날짜를 기준으로 "오늘 이후의 연도"를 자동으로 설정하세요.
- 예시1: 오늘이 2024-06-01일 경우, 연도가 없는 날짜 "06-15"는 "2024-06-15"로 설정해야 합니다.
- 예시2: 오늘이 2024-12-20일 경우, 연도가 없는 날짜 "12-12"는 "2025-12-12"로 설정해야 합니다.
만약 연도가 없을 때 현재 날짜보다 과거의 날짜로 해석된다면, 연도를 다음 연도로 설정합니다.
## 2. 공통 변수:
1. title: 일정 제목
- 기차표/버스표: "출발역 > 도착역"
- 영화표: "영화 제목"
2. start_datetime: 시작 일시 (예: 2024-12-24 22:00)
3. end_datetime: 종료 일시 (예: 2024-12-25 00:22)
- 종료 시간이 24시를 넘으면, 날짜에 하루를 더하고 시간은 00:00 형식으로 변환하세요.
- 예시: 시작일시가 2024-12-24 22:00, 종료시간이 24:22라면 종료일시는 2024-12-25 00:22로 설정합니다.
4. location: 위치
- 기차표/버스표: 출발역
- 영화표: 상영관 (장소)
5. extra: 추가 정보
- 기차표: 기차 번호
- 영화표: 좌석 정보
# Output Example:
## 0. 아주 중요한 지침:
"```JSON"과 같은 단어는 제외하세요. 반드시 "{}"와 "{}" 안의 내용만 출력하세요.
## 1. 기차표:
{
"title": "서울 > 부산",
"start_datetime": "2024-06-15 14:00",
"end_datetime": "2024-06-15 16:30",
"location": "서울",
"extra": {
"train_number": "KTX1234"
}
}
## 2. 버스표:
이미지에서 "01-20" 날짜만 주어진 경우, 오늘이 2024-12-25라면:
{
"title": "강남 > 광주",
"start_datetime": "2025-01-20 09:00",
"end_datetime": "",
"location": "강남",
"extra": {
"seat": ""
}
}
## 3. 영화표:
{
"title": "어벤져스: 엔드게임",
"start_datetime": "2024-12-27 18:00",
"end_datetime": "2024-12-27 21:00",
"location": "CGV 강남 2관",
"extra": {
"seat": "E12"
}
}
# 4. 작업 내용:
- 이미지를 분석하여 티켓 정보를 추출합니다.
- 날짜에 연도가 누락된 경우, 오늘 날짜를 기준으로 "오늘 이후의 연도"를 보완하여 JSON을 생성합니다.
- 종료 시간이 24시를 넘으면, 종료 날짜에 하루를 더하고 시간을 00:00 형식으로 표기합니다.
- 티켓의 종류에 맞게 title을 동적으로 설정하고 JSON 형식으로 출력합니다.
- extra 필드에는 기차 번호, 좌석 정보 등 추가적인 세부 정보를 넣습니다.
- 누락된 정보는 **"(빈칸)"**으로 처리합니다.
- 위 기준에 맞는 일관된 JSON을 작성하세요.
JSON 모듈 추가하기
이제는 ChatGPT가 만들어낸 결과를 Parse JSON 모듈에 넣어 결과물을 쪼개줍니다.
구글 캘린더 모듈 추가하기
구글 캘린더와 Make를 연결하려면 조금 복잡한 설정이 필요한데요.
해당 설정을 보기 위해서는 아래 영상을 참고해주세요.
Google API 승인을 받은 뒤에는 구글 캘린더의 Create a Event 모듈을 추가하여 새로운 일정 등록을 해줍니다. 일정과 시작시간, 종료시간을 입력합니다.
End_Datetime에 들어가는 수식은 아래를 참고해주세요.
{{if(11.end_datetime = emptystring; addHours(parseDate(11.start_datetime; ); 1); 11.end_datetime)}}
이제 설정이 종료되었습니다. 왼쪽 아래에 Run Once 버튼을 눌러 테스트를 진행해보세요.
다른 티켓 실험하기
모든 설정이 완료되었습니다. 버스표, 기차표, 영화 티켓 등 예매한 티켓을 넣고 테스트를 진행해보세요.
버스, 기차, 영화가 아닌 다른 티켓을 넣어서 원하는 결과물이 나오지 않는다면, 프롬프트를 조금씩 수정해보시면 됩니다.
블루프린트 다운받기
지금까지 만들었던 시나리오를 다운 받아 Make에 바로 적용시킬 수 있습니다.