서론
업무 현장에서 일정과 인원 관리는 가장 기본적이면서도 반복적인 작업 중 하나입니다. 많은 조직에서는 구글 시트로 근무표, 회의 일정, 프로젝트 일정표를 관리합니다. 하지만 시트에만 기록된 정보는 알림 기능이 없고, 팀원 개인 캘린더와 연동되지 않아 놓치는 경우가 발생합니다. 특히 교대 근무, 회의실 배정, 프로젝트 역할 분담 등은 실시간으로 확인할 수 있어야 효율적인 운영이 가능합니다. 이런 상황에서 구글 시트와 구글 캘린더를 연동하면, 시트에 기록된 일정이 자동으로 캘린더에 생성되고 알림까지 제공되므로 실무 활용도가 크게 높아집니다. 본 글에서는 시트 데이터를 읽어 캘린더 일정을 자동 생성하는 방법을 Apps Script 중심으로 설명합니다.
본론
첫 번째 단계는 일정 데이터가 담긴 구글 시트를 준비하는 것입니다. 일반적으로 시트에는 날짜, 시간, 담당자, 업무 내용과 같은 열을 구성합니다. 예를 들어 '2025-08-20, 10:00, 김철수, 회의 진행' 과 같은 행이 있다면, 이 데이터를 읽어 캘린더 일정으로 변환하는 것입니다.
두 번째 단계는 Apps Script를 이용하는 것입니다. 구글 시트 메뉴에서 확장 프로그램 → 앱스 스크립트에 들어가 새 프로젝트를 만들고, 구글 캘린더 API를 활성화해야 합니다. 이후 스크립트에서 CalendarApp
클래스를 활용해 새로운 이벤트를 생성할 수 있습니다. 예를 들어 다음과 같은 코드를 작성합니다.
function createEventsFromSheet() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("일정");
var data = sheet.getDataRange().getValues();
for (var i = 1; i < data.length; i++) {
var row = data[i];
var date = new Date(row[0]);
var title = row[2] + " - " + row[3];
var startTime = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 10, 0);
var endTime = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 11, 0);
CalendarApp.getDefaultCalendar().createEvent(title, startTime, endTime);
}
}
위 코드는 시트의 각 행을 읽어 제목과 날짜를 캘린더 이벤트로 등록하는 예시입니다. 인원 배정 정보도 함께 포함하면, 일정 제목에 담당자 이름이 자동으로 들어가므로 팀원별 일정 확인이 용이합니다.
세 번째 단계는 자동 실행 설정입니다. Apps Script에서는 트리거 기능을 제공하여 일정 주기마다 함수를 실행할 수 있습니다. 예를 들어 매일 새벽에 스크립트를 실행하도록 트리거를 걸어두면, 새로운 일정이 캘린더에 자동으로 반영됩니다. 또한, 필요에 따라 기존 일정 중복 생성을 방지하기 위해 이벤트 ID를 시트에 기록해두는 방식으로 안정성을 강화할 수 있습니다.
실무 적용 사례를 살펴보면, 교대 근무표를 시트로 작성한 뒤 이를 캘린더로 자동 배포하면 팀원들은 자신의 근무 일정을 캘린더에서 직접 확인할 수 있습니다. 회의 일정 관리에서도, 회의명이 적힌 시트 데이터를 캘린더와 연동하면 팀원들이 알림을 받을 수 있어 불참률을 줄일 수 있습니다.
결론
구글 시트와 캘린더의 연동은 일정 관리 효율성을 극대화하는 방법입니다. 단순히 시트에 일정을 기록하는 수준을 넘어, 캘린더에 자동 생성되도록 하면 팀원들은 알림을 받고, 각자 캘린더 앱에서 손쉽게 확인할 수 있습니다. Apps Script를 이용하면 반복 작업을 줄이고, 인원 배정과 일정 운영에서 실수를 최소화할 수 있습니다. 결국 이 자동화는 조직 전체의 협업 품질을 높이고, 관리자와 팀원 모두에게 시간 절약과 편리함을 제공합니다. 앞으로의 업무 환경에서 일정 자동화는 선택이 아니라 필수가 될 것이며, 구글 시트와 캘린더 연동은 그 시작점이 될 수 있습니다.