스프레드시트 일정, 구글 캘린더에 자동 등록하는 법

스프레드시트에 빼곡하게 정리된 수많은 일정을 구글 캘린더에 한 번에 옮기려니 막막하고 답답하셨을 겁니다.

수동으로 하나씩 입력하는 것은 시간 낭비는 물론, 휴먼 에러 가능성이 커 비효율적인 작업이기 때문입니다.

이 글에서는 구글 스프레드시트와 구글 앱스 스크립트를 활용해 단 5분 만에 일정을 자동으로 동기화하는 구체적인 방법을 단계별로 안내합니다.

이 글의 핵심

– 구글 스프레드시트와 앱스 스크립트 기반 자동화 설정법
– 특정 조건에 맞는 일정만 선별하여 캘린더에 등록하는 방법
– 한번 설정으로 반복되는 일정 관리의 효율을 80% 이상 극대화

💡 한 줄 답변

스프레드시트에 정리된 일정을 구글 캘린더에 자동으로 등록하여 수동 작업 없이 일정을 효율적으로 관리하는 구체적인 설정 방법을 제공합니다.

구글 캘린더 자동 등록을 위한 사전 준비

자동화 설정을 시작하기 전에, 구글 스프레드시트의 데이터 형식을 표준화하는 것이 중요합니다. 스크립트가 데이터를 정확히 읽고 캘린더에 반영하려면, 각 열의 의미가 명확해야 합니다. 일정 제목, 날짜, 시간, 설명 등이 빠짐없이 체계적으로 정리되어야 오류 없이 원활한 자동화가 가능합니다.

또한, 자동화된 일정을 별도로 관리할 전용 구글 캘린더를 생성해두면 기존 캘린더와 혼동 없이 더욱 깔끔하게 일정을 관리할 수 있습니다. 이는 문제 발생 시 디버깅을 용이하게 하고, 특정 목적의 일정을 한눈에 파악하는 데 도움을 줍니다.

  1. 스프레드시트 형식 설정 — ‘일정 제목’, ‘시작 날짜’, ‘시작 시간’, ‘종료 날짜’, ‘종료 시간’, ‘설명’ 등의 필수 항목 열을 첫 행에 정확히 구성합니다. 날짜는 ‘YYYY-MM-DD’, 시간은 ‘HH:MM’ 형식으로 통일하는 것이 좋습니다.
  2. 새로운 구글 캘린더 생성 — 구글 캘린더 웹사이트에서 ‘다른 캘린더’ 옆 ‘+’ 아이콘을 클릭하고 ‘새 캘린더 만들기’를 선택하여 자동화된 일정을 위한 전용 캘린더를 생성합니다. 이때 생성되는 캘린더 ID를 미리 복사해 둡니다.
구글 캘린더 스프레드시트 일정 자동화 설정

Photo by Matheus Bertelli on Pexels

구글 앱스 스크립트 작성 및 설정 단계

구글 앱스 스크립트는 구글 워크스페이스 제품군을 자동화하고 확장하는 자바스크립트 기반의 클라우드 플랫폼입니다. 스프레드시트의 데이터를 읽어 구글 캘린더에 이벤트를 생성하는 핵심 로직을 담당하며, 복잡한 코딩 지식 없이도 따라 할 수 있도록 설계되었습니다.

이 단계에서는 스프레드시트의 데이터를 가져와 캘린더 이벤트로 변환하는 스크립트 코드를 작성하고, 해당 스크립트가 주기적으로 실행될 수 있도록 트리거를 설정합니다. 이 과정만 정확히 완료하면, 이후 스프레드시트에 일정을 추가하는 것만으로 구글 캘린더에 자동 등록됩니다.

  1. 스크립트 편집기 열기 — 일정 데이터가 있는 구글 스프레드시트를 열고, 상단 메뉴에서 ‘확장 프로그램’ > ‘Apps Script’를 선택하여 스크립트 편집기 창을 엽니다.
  2. 스크립트 코드 붙여넣기 — 기본으로 생성된 ‘myFunction()’ 코드를 모두 삭제하고, 아래 예시 코드를 복사하여 붙여넣습니다.
    function syncSpreadsheetToCalendar() {
      var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = spreadsheet.getSheetByName("Sheet1"); // 시트 이름 수정 필요
      var calendarId = "YOUR_CALENDAR_ID"; // 생성한 캘린더 ID로 수정
      var calendar = CalendarApp.getCalendarById(calendarId);
    
      var dataRange = sheet.getDataRange();
      var values = dataRange.getValues();
    
      // 첫 번째 행은 헤더이므로 건너뛰기
      for (var i = 1; i < values.length; i++) {
        var row = values[i];
        var title = row[0]; // '일정 제목' 열 (A열)
        var startDate = new Date(row[1]); // '시작 날짜' 열 (B열)
        var startTime = row[2] ? row[2] : "09:00"; // '시작 시간' 열 (C열), 없으면 9시
        var endDate = new Date(row[3]); // '종료 날짜' 열 (D열)
        var endTime = row[4] ? row[4] : "18:00"; // '종료 시간' 열 (E열), 없으면 18시
        var description = row[5]; // '설명' 열 (F열)
    
        var startDateTime = new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate(), parseInt(startTime.split(':')[0]), parseInt(startTime.split(':')[1]));
        var endDateTime = new Date(endDate.getFullYear(), endDate.getMonth(), endDate.getDate(), parseInt(endTime.split(':')[0]), parseInt(endTime.split(':')[1]));
    
        // 이미 캘린더에 있는 일정인지 확인 (간단한 중복 확인)
        var events = calendar.getEvents(startDateTime, endDateTime, {text: title});
        if (events.length === 0) {
          calendar.createEvent(title, startDateTime, endDateTime, {description: description});
          Logger.log("Created event: " + title);
        }
      }
    }
    
  3. 스크립트 수정 및 캘린더 ID 설정 — 코드 내에서 `sheet.getSheetByName(“Sheet1”)` 부분을 실제 스프레드시트 시트 이름으로 변경하고, `var calendarId = “YOUR_CALENDAR_ID”;` 부분에 2단계에서 복사해둔 전용 캘린더 ID를 붙여넣습니다.
  4. 트리거 설정 — 스크립트 편집기 왼쪽 메뉴의 ‘트리거’ 아이콘을 클릭한 후, ‘트리거 추가’ 버튼을 누릅니다. ‘실행할 함수 선택’에서 `syncSpreadsheetToCalendar`를 선택하고, ‘이벤트 소스 선택’을 ‘시간 기반’으로 설정한 뒤, ‘시간 유형 선택’에서 ‘매시간’ 또는 ‘매일’ 등 원하는 주기를 선택합니다. 예를 들어 ‘매시간’으로 설정하면, 60분마다 스프레드시트의 새 일정을 캘린더에 동기화합니다.
구글 캘린더 스프레드시트 일정 자동화 설정

Photo by Matheus Bertelli on Pexels

스크립트 실행 및 자동 동기화 확인

스크립트 코드를 저장하고 트리거까지 설정했다면 이제 첫 실행을 통해 자동화가 제대로 작동하는지 확인해야 합니다. 첫 실행 시에는 구글 계정의 보안 정책으로 인해 스크립트에 대한 권한 부여가 필요하며, 이 과정은 단 1회만 진행됩니다. 한번 승인되면 이후에는 백그라운드에서 자동으로 작업이 처리됩니다.

실행 후 구글 캘린더를 열어 스프레드시트에 입력했던 일정이 정상적으로 동기화되었는지 확인합니다. 만약 일정이 보이지 않는다면, 스크립트 코드의 캘린더 ID나 스프레드시트 시트 이름, 또는 열 인덱스가 정확한지 다시 한번 확인해볼 필요가 있습니다.

참고
최초 스크립트 실행 시 구글 계정의 인증 절차가 필요합니다. 스크립트 편집기에서 재생 버튼을 눌러 스크립트를 수동 실행하면 ‘권한 검토 필요’ 메시지가 나타납니다. 이때 ‘권한 검토’를 클릭하고 ‘내 계정으로 로그인’ > ‘고급’ > ‘안전하지 않은 앱으로 이동(링크)’을 선택한 후 권한을 부여해야 정상적으로 작동합니다. 이 과정은 1회만 진행되며, 보안에 대한 우려가 있다면 구글의 공식 문서에서 앱스 스크립트 보안에 대해 더 자세히 알아볼 수 있습니다.
구글 캘린더 스프레드시트 일정 자동화 설정

Photo by Matheus Bertelli on Pexels

자동화 스크립트 관리 및 활용 팁

스프레드시트와 구글 캘린더의 자동 동기화는 한번 설정해두면 지속적으로 생산성을 높여주는 강력한 도구입니다. 하지만 데이터를 정확하게 유지하고 스크립트가 예상대로 작동하는지 주기적으로 확인하는 것이 중요합니다. 특히 대량의 일정을 관리한다면, 데이터 입력 규칙을 철저히 지키는 것이 오류를 방지하는 핵심입니다.

또한, 이 스크립트를 응용하여 특정 키워드가 포함된 일정만 캘린더에 추가하거나, 완료된 일정을 스프레드시트에서 자동으로 삭제하는 등 더 복잡한 자동화를 구현할 수도 있습니다. 구글 앱스 스크립트의 다양한 기능을 학습하면 생산성 향상의 폭을 획기적으로 넓힐 수 있습니다.

주의
스프레드시트의 열 구성 순서나 시트 이름, 또는 날짜/시간 형식이 변경되면 스크립트가 제대로 작동하지 않을 수 있습니다. 스크립트 코드에 명시된 시트 이름과 열 인덱스를 정확하게 유지해야 하며, 변경이 필요한 경우 스크립트 코드도 함께 수정해야 합니다. 특히 `sheet.getSheetByName(“Sheet1”)`과 `row[숫자]` 부분은 스프레드시트 구조와 일치해야 합니다.
정리

구글 스프레드시트의 일정을 구글 캘린더에 자동 등록하는 방법은 구글 앱스 스크립트를 활용하여 단 몇 단계 만에 구현할 수 있습니다. 사전 준비부터 스크립트 작성, 트리거 설정까지 이 글에서 제시한 4가지 단계를 충실히 따라하면, 이제 더 이상 수동으로 일정을 입력하는 번거로움 없이 생산성을 획기적으로 높일 수 있습니다.

지금 바로 적용해 보세요.

참고 자료

동영상으로 보는 구글 캘린더 스프레드시트 일정 자동화 설정

글로 충분하지 않다면 관련 영상을 함께 보세요. 클릭하면 YouTube에서 검색 결과로 이동합니다.

▶ YouTube에서 “구글 캘린더 스프레드시트 일정 자동화 설정” 영상 보기

자주 묻는 질문

Q. 이 자동화는 어떤 방식으로 이루어지나요? 어떤 도구가 필요한가요?

A. 이 자동화는 주로 구글 앱스 스크립트(Google Apps Script)를 활용합니다. 스프레드시트의 데이터를 읽고 구글 캘린더에 이벤트를 생성하도록 자바스크립트 기반의 스크립트를 작성하게 됩니다. 구글 계정만 있다면 별도의 프로그램 설치 없이 웹 환경에서 모두 설정할 수 있습니다.

Q. 스프레드시트에 어떤 정보가 있어야 자동화가 가능한가요?

A. 스프레드시트에는 이벤트 제목, 시작일시, 종료일시 등 필수적인 일정 정보가 포함되어야 합니다. 스크립트가 데이터를 정확히 인식하도록 일관된 열 제목과 형식 유지하는 것이 중요합니다. 필요에 따라 장소, 설명 등의 추가 정보도 활용할 수 있습니다.

Q. 프로그래밍 지식이 없어도 이 자동화를 설정할 수 있나요?

A. 기본적인 스크립트 개념을 이해하면 좋지만, 전문 프로그래머가 아니어도 충분히 설정할 수 있습니다. 본 게시물에서는 따라 하기 쉬운 예시 스크립트를 제공하고, 각 단계를 상세히 안내해 드릴 예정입니다. 약간의 노력으로도 복잡한 코딩 없이 자동화를 구현할 수 있습니다.

Q. 자동화된 스크립트는 얼마나 자주 실행되며, 이미 등록된 일정은 어떻게 처리하나요?

A. 앱스 스크립트의 ‘트리거’ 기능을 활용하여 스크립트 실행 주기를 시간 단위, 일 단위, 주 단위 등으로 직접 설정할 수 있습니다. 중복 등록을 방지하기 위해 많은 스크립트가 스프레드시트의 고유 식별자를 사용하여 기존 일정을 확인하는 로직을 포함합니다. 이를 통해 깔끔하고 정확한 캘린더 관리가 가능합니다.



댓글 남기기

Mebys Blog에서 더 알아보기

지금 구독하여 계속 읽고 전체 아카이브에 액세스하세요.

계속 읽기