구글 캘린더·시트 일정 동기화와 알림

업무 자동화4분 읽기

일정 관리는 겉보기에 단순하지만 여럿을 상대할 때 금세 복잡해집니다. 거래처마다 일정이 따로 돌아가는데 본사는 그것을 한눈에 봐야 하고 일정이 잡히거나 바뀌면 관련자에게 알려야 하며 다가온 일정은 미리 상기시켜 줘야 합니다. 광고대행 사업의 업무 자동화에서 일정을 다룰 때, 우리는 거래처가 편하게 쓰는 입력 도구와 본사가 전체를 조망하는 도구, 그리고 변화를 알리는 자동화를 각각의 자리에 배치했습니다.

시트는 입력, 캘린더는 조망

거래처별로 일정 시트를 하나씩 뒀습니다. 시트에는 일정 날짜, 제목, 상세 내용, 담당자, 상태 같은 열이 있고 상태는 예정·완료·취소 중에서 고르는 드롭다운으로 만들어 표기가 흔들리지 않게 했습니다. 시트를 입력 창구로 삼은 이유는 거래처와 담당자가 이미 익숙한 도구이기 때문입니다. 새 앱을 배우지 않고 표에 한 줄을 채우면 됩니다.

본사는 개별 시트를 하나씩 열어 보는 대신, 모든 거래처의 일정을 한 화면에 모아 봅니다. 이 통합 뷰는 IMPORTRANGE로 각 거래처 시트의 일정을 끌어와 만듭니다. 거래처 시트에 일정이 추가되면 본사 통합 뷰에도 따라 나타나므로 본사는 어느 거래처에 무슨 일정이 있는지를 한자리에서 확인합니다. 입력은 거래처별로 분산되어 있고 조망은 본사에서 한데 모이는 구조입니다.

시트 변화를 onEdit이 감지해 알린다

일정이 잡히거나 바뀌면 알려야 합니다. 이를 위해 일정 시트에 onEdit 트리거를 걸었습니다. 시트의 일정 영역에 변화가 생기면 트리거가 그것을 감지해 등록인지 변경인지 삭제인지에 맞는 알림을 관련자에게 보냅니다. 새 일정이 등록되면 등록 알림이, 내용이 바뀌면 변경 알림이, 일정이 지워지면 삭제 알림이 나갑니다.

알림 문구에는 해당 일정의 날짜를 넣어 받는 사람이 어느 일정의 알림인지 바로 알 수 있게 했습니다. 삭제 알림에는 그 일정의 리마인드가 더는 나가지 않는다는 점까지 담아 지운 뒤에도 상기 알림이 올까 걱정하지 않게 했습니다. 변화의 종류와 대상 날짜가 문구 안에 함께 드러나는 것이 핵심입니다.

매일 아침 다음 날 일정을 상기시킨다

등록·변경 시점의 알림만으로는 부족합니다. 며칠 전에 잡아 둔 일정은 정작 당일이 다가오면 잊히기 쉽습니다. 그래서 매일 정해진 아침 시각에 도는 리마인드 트리거를 두었습니다. 이 트리거는 거래처들의 일정을 훑어 다음 날 예정된 일정을 찾아 해당 관련자에게 미리 알려 줍니다.

리마인드는 상태가 예정인 일정만 대상으로 합니다. 이미 완료했거나 취소한 일정까지 상기시키면 오히려 혼란스럽기 때문입니다. 상태 드롭다운을 예정·완료·취소로 고정해 둔 것이 여기서 힘을 발휘합니다. 자유롭게 적은 상태 값이 아니라 정해진 값이라 리마인드 대상을 기계가 정확히 골라낼 수 있습니다.

역할을 나눠 단순하게 유지한다

이 설계의 요점은 각 도구에 하나의 역할만 맡긴 데 있습니다. 시트는 거래처가 일정을 넣는 입력 창구, 통합 뷰는 본사가 전체를 보는 조망 창, onEdit과 리마인드 트리거는 변화와 임박을 알리는 자동화입니다. 역할이 겹치지 않으니 운영자가 어디를 봐야 하는지, 어디를 고쳐야 하는지가 분명합니다.

이 일정 자동화는 앞서 만든 문자 발송 모듈을 그대로 재사용합니다. 업로드 알림과 일정 알림이 같은 발송 경로를 쓰기 때문입니다. 문자 발송의 인증 설계는 앱스스크립트에서 문자 발송하기에서, 시스템 전체 그림은 구글 시트·앱스스크립트 거래처별 업무 자동화에서 이어집니다.

자주 묻는 질문

시트와 캘린더 중 무엇을 일정의 원천으로 삼나요?

이 설계에서는 거래처가 채우는 일정 시트를 입력 원천으로 삼고 본사 통합 뷰는 IMPORTRANGE로 그 시트들을 끌어와 조망하는 자리로 두었습니다. 시트를 입력 창구로 삼은 이유는 거래처와 담당자가 이미 익숙해 새 도구를 배울 필요가 없기 때문입니다. 조망과 알림은 그 위에 얹혀 돕니다.

onEdit 트리거로 알림을 보낼 때 주의할 점은 무엇인가요?

변화의 종류를 구분해 그에 맞는 문구를 보내는 것이 중요합니다. 등록·변경·삭제를 뭉뚱그려 하나의 알림으로 처리하면 받는 사람이 무슨 일이 일어났는지 알 수 없습니다. 대상 일정의 날짜를 문구에 담고 삭제한 일정에는 리마인드가 더 나가지 않는다는 점까지 알려 주면 알림만 보고도 상황이 파악됩니다.

완료했거나 취소한 일정에도 리마인드가 가면 어떻게 하나요?

리마인드 대상을 상태가 예정인 일정으로 한정하면 됩니다. 상태 값을 예정·완료·취소 드롭다운으로 고정해 두었기 때문에, 매일 아침 리마인드 트리거가 예정 상태의 다음 날 일정만 정확히 골라냅니다. 이미 끝나거나 취소한 일정은 상기 알림에서 자동으로 빠집니다.

#구글캘린더#구글시트#IMPORTRANGE#일정알림

업무자동화 구축이 필요하신가요?

무료 상담 신청