귀찮은 일정 입력, 스크린샷 기반 캘린더 자동화 (1)

소개

저는 일정 관리에 꽤 진심인 편인데, 동시에 자주 놓칩니다.

이유는 명확했어요. 하는 일이 너무 많고, 일정도 분산돼 있고, 일정 등록을 미루다 잊어버리는 것

그래서 아예 핸드폰으로 스크린샷만 찍으면 캘린더에 일정이 자동으로 등록되는 시스템을 만들기로 했습니다.

“프리랜서 n8n” 스터디의 첫 예제가 구글 캘린더 자동화였던 덕분에 이걸 잘 활용하면 제 페인포인트를 직접 해결할 수 있겠다 싶었어요.

사용한 도구

  • Android 폰

  • FolderSync (클라우드 연동용 앱)

  • Google Drive

  • n8n

진행 방법

한국어 앱의 스크린 샷

프리랜서 n8n 스터디에 참여한 이유와 진행 중인 프로젝트

‘프리랜서 n8n’ 스터디를 신청하게 된 계기는, 4주 뒤 내가 직접 만들어낼 자동화 결과물 리스트를 보고 큰 흥미를 느꼈기 때문입니다.

마침 첫 번째 스터디 예제가 ‘구글 캘린더 자동 등록’이라 더욱 반가웠습니다. ‘드디어 내 오랜 페인포인트를 스스로 해결할 수 있겠구나’라는 기대감이 들었어요.

제가 갖고 있는 일정 관리의 문제는 크게 두 가지였습니다.
하나는 다양한 협업 툴에서 일정을 주고받다 보니 일정이 이곳저곳 흩어진다는 점이고,
다른 하나는 일정이 많아질수록 캘린더에 등록하는 걸 자꾸 잊게 된다는 점이었죠.

그래서 첫 주 오프라인 모임에서 세임님과 대화를 나눈 후, 이미지를 기반으로 캘린더에 자동 등록되는 시스템을 구현해보기로 마음먹었습니다.

한국어 앱 생성 과정을 보여주는 다이어그램

프로젝트 목표: 스크린샷 → 일정 등록까지 자동화

핸드폰으로 일정이 적힌 화면을 캡처하면,
→ 자동으로 클라우드에 업로드되고
→ 이미지 분석을 통해 일정이 있는지 확인한 뒤
→ 일정이 있다면 구글 캘린더에 등록되도록 하는 것이 목표였습니다.

메모하듯이 스크린샷을 해두는게 습관이다보니, 일정에 관련해서도 이런식으로 자동화를 해두면 확실히 도움이 될 거라고 판단했습니다.

한국의 비즈니스 프로세스 다이어그램

1단계. 클라우드 연동부터 고민

가장 먼저 고민한 건, 핸드폰 내 “스크린샷” 폴더에 저장된 이미지를 클라우드로 자동 업로드하는 방법이었습니다.

검토해본 클라우드 옵션은 총 세 가지였어요.

  • 구글 드라이브

  • 원드라이브

  • 드롭박스

세임님의 조언에 따라 드롭박스는 제외했고,
원드라이브는 안드로이드 폰에 자동 연동되긴 하지만, 이 자동화 하나만을 위해 유료 구독을 하는 건 부담스러워 선택하지 않았습니다.

릴리스 스타의 다른 부분을 보여주는 다이어그램

결국 선택한 방식은 FolderSync 앱을 이용해 구글 드라이브에 스크린샷을 자동 업로드하는 것이었어요.
(스터디원 지훈님의 추천으로 시도하게 됐습니다.)

+ 작업 중에 구글 포토를 통해 구글 드라이브와 연동하는 방법도 시도해보았어요.
사진 백업은 잘 되긴 했지만, 문제는 폴더 구조였습니다.

구글 포토는 핸드폰의 실제 폴더 체계와 다르게 작동해서 “스크린샷” 폴더가 없거나, 같은 이름이라도 내부 사진 구성이 완전히 달랐습니다. 결국 원하는 폴더만 정확히 연동하기가 어려워서 이 방식은 포기하게 됐어요.

빨간색, 녹색 및 파란색 배경이있는 모바일 앱의 스크린 샷

FolderSync 설정 과정에서 꽤 많은 시행착오가 있었습니다. (결국 해냈지만!)
아무리해도 설정해 둔 자동 동기화가 작동하지 않아, 자동 업로드가 되지 않았습니다.

한국 앱의 스크린 샷

왜 그럴지 계속 고민하고, 검색하고, 앱을 사용하다보니

문제는

  • 와이파이 외 연결을 허용하지 않아 전송이 막혔으며

  • 앱 권한 허용도 제대로 안 되어 있었던 것

이런 부분을 하나씩 확인하고 해결하면서, 정상적으로 파일이 업로드되도록 만들 수 있었습니다.

※ 참고한 설정 방법
https://geekorea.com/how-to-google-drive-backup-and-auto-sync-on-galaxy/

한국 웹 사이트 생성 과정을 보여주는 다이어그램

2단계. 본격적인 n8n 구성 시작

n8n 작업은 생각보다 막막하게 시작했습니다.
무엇부터 구성해야 할지 몰라 한참 헤맸고, 그때마다 ChatGPT와 Claude의 도움을 받으며 하나씩 시도해봤습니다.

하고자 하는 기능을 프롬프트로 설명하고
→ AI의 응답을 바탕으로 노드를 설정하고
→ 중간에 에러가 나면 캡처해서 질문하고
→ 다시 수정하고 반복하며 구성해나갔습니다.

이런 과정을 수십 번 거치며, 총 2가지 방식의 플로우를 만들어냈습니다.
(본업보다 더 집착했던 것 같아요...😂)

웹 사이트 생성 과정을 보여주는 다이어그램

첫번째 방식: 단계별 분리 처리 방식

Google Drive 트리거 → 파일 다운로드 → 이미지 분석 → 일정 판별 → 데이터 가공 → 캘린더 분기 → 각 캘린더 등록

"OpenAI로 이미지 분석만 수행하고, 이후 데이터 처리와 캘린더 등록은 별도의 n8n 노드들(If, Set, Switch, Google Calendar)로 구현"
라고 적었지만 사실 이게 무슨 소리인지 잘 모르겠습니다. 하라는데로 했을 뿐..

  • 1단계: Google Drive Trigger
    노드: Google Drive Trigger
    트리거 조건: fileCreated (새 파일 생성시)
    모니터링 폴더: 스크린샷 폴더
    출력: 파일 정보를 다음 단계로 전달

  • 2단계: Download file
    노드: Google Drive
    작업: download (파일 다운로드)
    파일 ID: {{ $json.id }} (트리거에서 전달받은 파일 ID)
    출력: 이미지를 바이너리 데이터로 변환

  • 3단계: Analyze image
    노드: OpenAI
    모델: GPT-4O
    프롬프트: 이미지 분석 후 일정 정보 추출 및 JSON 형식 응답 요청
    출력 형식: has_schedule, category, title, relative_date, start_time 등을 포함한 JSON

  • 4단계: If
    노드: If
    조건: {{ JSON.parse($json.content).has_schedule }} === true
    역할: 일정 존재 여부에 따른 분기 처리

  • 5단계: 데이터 가공
    노드: Set
    기능: 상대적 날짜를 절대 날짜로 변환, 제목 포맷팅, 캘린더 URL 설정
    주요 변환: "24일" → "2025-07-24", "다음주 목요일" → 구체적 날짜 계산

  • 6단계: Switch
    노드: Switch
    분기 조건: category 값에 따라 personal/work/class로 분기
    역할: 일정 유형별로 적절한 캘린더 노드로 라우팅

  • 7단계: 캘린더 등록
    노드: Google Calendar (3개)
    일정 내용에 따라 캘린더에 나눠서 등록
    공통 설정: 날짜/시간 형식 변환 및 한국 시간대(+09:00) 적용

머신 러닝 알고리즘의 프로세스를 보여주는 다이어그램

두번째 방식: AI Agent 통합 처리 방식

Google Drive 트리거 → 파일 다운로드 → AI Agent (이미지 분석 + 캘린더 등록)

AI Agent를 활용하여 이미지 분석부터 캘린더 등록까지 모든 작업을 하나의 노드에서 처리하는 방식입니다. 스터드 처음에 예제로 해본 MCP를 적극 활용했습니다.

관련해서 작성한 사례글 : https://www.gpters.org/nocode/post/taste-calendar-automation-n8n-rpyHJIyHcu6498Y

  • 1단계: Google Drive Trigger
    노드: Google Drive Trigger
    트리거 조건: fileCreated (새 파일 생성시)
    모니터링 폴더: 스크린샷 폴더 (FolderSync 업로드 대상)
    폴링 주기: 1분마다 확인

  • 2단계: Download file
    노드: Google Drive
    작업: download (파일 다운로드)
    파일 ID: {{ $json.id }} (트리거에서 전달받은 파일 ID)
    출력: 이미지를 바이너리 데이터로 변환

  • 3단계: AI Agent
    노드: AI Agent
    주요 설정:
    Chat Model: OpenAI GPT-4o
    Tools: 3개 MCP Client (개인/업무/수업 캘린더)
    Options: Automatically Passthrough Binary Images 활성화

    프롬프트에는 캘린더 구분, 제목 규칙, 작업 과정에 대해서 작성

한국 HTML 편집자 스크린 샷

회사 막내가 한 말이 아직도 귀에 맴돕니다.
“이 정도면 AI들 월급 줘야 해요. 그렇게 부려먹을 거면…”

엄청 고생한 ChatGPT와 Claude...

한국 앱의 스크린 샷

테스트 결과는?

두 방식 모두 일정 등록에는 성공했습니다.

  • 일정이 포함된 스크린샷은 정상적으로 캘린더에 등록되었고

  • 일정이 없는 스크린샷은 자동으로 건너뛰었습니다.

현재는 두 번째 방식(AI Agent 활용)을 중심으로 테스트 중입니다.
(첫번째 방식은 아직 이해를 잘 못했기 때문이죠...)

전보 계정 생성 프로세스를 보여주는 다이어그램

앞으로의 계획

앞으로는 자동 등록된 일정의 결과를 바로 확인할 수 있도록
텔레그램과 연동하여 알림을 받는 기능도 추가할 계획입니다.

등록 실패나 잘못된 일정은 즉시 확인해서 수정할 수 있도록 하고,
자동화된 일정 관리를 더욱 안정적으로 만들고 싶습니다.

결과와 배운 점

  • 날짜 처리의 복잡성

    "24일", "다음주 목요일" 같은 상대적 날짜를 절대 날짜로 변환하는 것이 생각보다 복잡했습니다. 특히 한국 시간대 처리와 서버 시간대 차이로 인한 오류가 자주 발생했어요. 지금은 어찌저찌 되고 있지만, 좀 더 테스트를 해봐야 문제가 없는지 확인할 수 있을 것 같습니다.

  • n8n 관련해서는 ChatGPT보다 Claude 답변이 더 좋았다!

다음편!

귀찮은 일정 입력, 스크린샷 기반 캘린더 자동화 (2) : https://www.gpters.org/nocode/post/objective-schedule-input-screenshot-djosHGMIi4GH61c

긴 글 읽어주셔서 감사합니다 😘

8
6개의 답글

👉 이 게시글도 읽어보세요