회의 일정을 매번 직접 입력하지 않는 방법
회의가 잡힐 때마다 Google Calendar를 열고 제목, 날짜, 시간을 하나씩 (자세히 보기) (자세히 보기)입력하는 작업은 한 번만 보면 간단합니다. 하지만 비슷한 일정이 반복되면 이야기가 달라집니다.
이번 글에서는 Google Apps Script(GAS)를 이용해 Google Calendar에 일정을 자동으로 등록하는 가장 단순한 방법을 소개합니다. 별도의 서버를 만들 필요 없이 Google 계정에서 스크립트를 실행할 수 있고, ChatGPT를 이용해 일정 정보를 정리한 뒤 실제 캘린더 등록까지 (자세히 보기) (자세히 보기) 연결할 수 있습니다.
예를 들어 다음과 같은 업무가 있다고 가정해 보겠습니다.
“9월 21일 오후 2시부터 3시까지 마케팅팀 주간회의를 진행하고, 회의실 A에서 만난다.”
이 내용을 일정으로 직접 입력하는 대신, 필요한 값만 정리해 Apps Script에 전달하면 Calendar에 이벤트를 만들 수 있습니다.
먼저 전체 흐름부터 확인하기
이번 예제는 복잡한 AI 시스템을 만드는 것이 아닙니다. 구조는 다음 네 단계입니다.
- 업무 내용을 AI로 일정 데이터 형태로 정리합니다.
- Google Apps Script가 그 데이터를 받습니다.
- Apps Script가 Google Calendar를 호출합니다.
- Google Calendar에 일정이 생성됐는지 확인합니다.
중요한 점은 AI와 Calendar를 반드시 복잡한 API 서버로 연결할 필요는 없다는 것입니다. 처음 자동화를 만들 때는 Google Apps Script의 기본 Calendar 연동 기능만으로도 충분한 경우가 많습니다.
1단계. Google Apps Script 열기
웹 브라우저에서 Google Apps Script를 열고 새 프로젝트를 만듭니다. 프로젝트 이름은 예를 들어 업무 일정 자동등록으로 지정하면 됩니다.
새 프로젝트가 열리면 기본으로 생성된 코드 영역에 다음 코드를 넣습니다.
function createCalendarEvent() { const calendar = CalendarApp.getDefaultCalendar(); const title = '마케팅팀 주간회의'; const startTime = new Date('2026-09-21T14:00:00+09:00'); const endTime = new Date('2026-09-21T15:00:00+09:00'); const event = calendar.createEvent(title, startTime, endTime, { location: '회의실 A' }); Logger.log(event.getId()); }
여기서 실제로 바꾸는 부분은 네 가지입니다.
| 코드 | 의미 | 예시 |
|---|---|---|
| title | 일정 제목 | 마케팅팀 주간회의 |
| startTime | 시작 시간 | 2026-09-21 14:00 |
| endTime | 종료 시간 | 2026-09-21 15:00 |
| location | 장소 | 회의실 A |
2단계. 처음 실행할 때 권한 승인하기
코드를 저장한 뒤 createCalendarEvent 함수를 실행합니다.
처음 실행하면 Google 계정과 Calendar에 접근하기 위한 권한 승인 화면이 나타날 수 있습니다. 화면에 표시되는 권한 범위와 계정을 확인한 뒤 본인이 만든 스크립트에 필요한 권한인지 확인하고 승인합니다.
실행이 정상적으로 끝났다면 Google Calendar를 열어 봅니다.
9월 21일 14:00~15:00, 마케팅팀 주간회의 일정이 생성되어 있고 장소에 회의실 A가 표시되면 첫 번째 자동화가 완료된 것입니다.

3단계. 같은 코드를 여러 일정에 재사용하기
여기서부터가 실무에서 유용합니다. 매번 코드 자체를 수정하지 않고 일정 정보를 함수의 입력값으로 분리할 수 있습니다.
function addEvent(title, start, end, location) { const calendar = CalendarApp.getDefaultCalendar(); const startTime = new Date(start); const endTime = new Date(end); const event = calendar.createEvent( title, startTime, endTime, { location: location } ); return event.getId(); } function testEvent() { const eventId = addEvent( '분기 실적 검토', '2026-09-22T10:00:00+09:00', '2026-09-22T11:30:00+09:00', '회의실 B' ); Logger.log(eventId); }
이제 addEvent()에 제목, 시작시간, 종료시간, 장소만 넣으면 같은 기능을 계속 사용할 수 있습니다.
예를 들어 다음과 같은 업무가 있다면:
“9월 23일 오전 10시부터 11시까지 신규 프로젝트 킥오프. 장소는 본사 3층 회의실.”
AI에게 먼저 다음과 같이 요청할 수 있습니다.
“아래 업무 내용을 Google Calendar에 등록할 수 있도록 제목, 시작일시, 종료일시, 장소를 각각 분리해 주세요. 날짜와 시간은 YYYY-MM-DDTHH:MM:SS+09:00 형식으로 출력하세요. 설명은 추가하지 마세요.”
AI의 결과가 다음처럼 나오면 됩니다.
제목: 신규 프로젝트 킥오프 시작: 2026-09-23T10:00:00+09:00 종료: 2026-09-23T11:00:00+09:00 장소: 본사 3층 회의실
그 값을 Apps Script의 함수에 넣으면 됩니다.
4단계. 실무에서는 Google Sheets를 중간 입력창으로 사용하기
여기서 한 단계 더 나아가면 Google Sheets를 일정 목록으로 사용하는 방법이 편합니다.
예를 들어 시트에 다음처럼 입력합니다.
| A열 제목 | B열 시작 | C열 종료 | D열 장소 |
|---|---|---|---|
| 마케팅팀 주간회의 | 2026-09-24 14:00 | 2026-09-24 15:00 | 회의실 A |
| 분기 실적 검토 | 2026-09-25 10:00 | 2026-09-25 11:30 | 회의실 B |
그 다음 Apps Script에서 시트의 각 행을 읽어 Calendar에 등록하도록 만들 수 있습니다.
function createEventsFromSheet() { const sheet = SpreadsheetApp .getActiveSpreadsheet() .getSheetByName('일정'); const rows = sheet.getDataRange().getValues(); for (let i = 1; i < rows.length; i++) { const title = rows[i][0]; const startTime = new Date(rows[i][1]); const endTime = new Date(rows[i][2]); const location = rows[i][3]; if (!title || !startTime || !endTime) { continue; } CalendarApp.getDefaultCalendar().createEvent( title, startTime, endTime, { location: location } ); } }
이 방식의 장점은 AI와 사람이 각각 잘하는 일을 분리할 수 있다는 것입니다.
- AI: 긴 업무 내용을 읽고 일정에 필요한 항목으로 정리
- Google Sheets: 사람이 최종 내용을 확인
- Apps Script: 확인된 내용을 Calendar에 등록
특히 회사 업무에서는 이 구조가 안전합니다. AI가 바로 캘린더에 쓰도록 하기보다 사람이 한 번 확인하는 단계를 중간에 두는 것입니다.

대부분 놓치는 부분: 중복 등록을 막아야 한다
일정 자동화에서 코드가 정상적으로 실행되는 것보다 더 중요한 문제가 있습니다. 같은 일정을 두 번 등록하는 문제입니다.
앞의 Sheets 예제에서 버튼을 두 번 누르면 같은 회의가 두 번 만들어질 수 있습니다.
따라서 실제 업무에 적용할 때는 시트에 상태 열을 하나 추가하는 편이 좋습니다.
| 제목 | 시작 | 종료 | 장소 | 상태 |
|---|---|---|---|---|
| 마케팅팀 주간회의 | 2026-09-24 14:00 | 2026-09-24 15:00 | 회의실 A | 등록완료 |
| 분기 실적 검토 | 2026-09-25 10:00 | 2026-09-25 11:30 | 회의실 B | 대기 |
Apps Script에서는 상태가 대기인 행만 처리하고, 등록이 끝나면 등록완료로 바꾸도록 설계할 수 있습니다.
이 작은 상태 관리가 자동화의 안정성을 크게 높입니다. 단순히 “AI가 일정을 만들어 준다”에서 끝나는 것이 아니라, 입력 → 검토 → 실행 → 완료 표시라는 업무 흐름을 만드는 것이 실전 자동화의 차이입니다.
회사 업무에 적용할 때 지켜야 할 안전 기준
Calendar 연동 자체보다 중요한 것은 어떤 데이터를 AI와 스크립트에 전달하느냐입니다.
1. 개인정보를 그대로 넣지 않기
고객 전화번호, 주민등록번호, 개인 주소, 민감한 인사정보처럼 일정 등록에 필요하지 않은 정보는 AI 입력값에서 제외합니다.
예를 들어 다음과 같은 원문을 그대로 AI에 전달하기보다는:
“홍길동 고객의 010-1234-5678 번호로 연락해서 9월 25일 오후 3시에 자택 방문…”
일정 자동화에 필요한 정보만 남기는 방식이 낫습니다.
“9월 25일 오후 3시 고객 방문 일정. 장소는 별도 확인.”
2. 회사의 AI 사용 규정을 먼저 확인하기
회사마다 외부 AI 서비스에 입력할 수 있는 업무정보의 범위가 다릅니다. 특히 고객정보, 계약정보, 내부 재무자료, 인사정보 등이 포함된 업무라면 회사의 정보보안 및 생성형 AI 사용정책을 확인해야 합니다.
3. 자동 등록 전에 사람이 확인하기
처음부터 AI가 Calendar에 바로 쓰게 만드는 것보다, Google Sheets에 결과를 넣고 사람이 날짜와 시간을 확인한 뒤 등록하는 구조가 관리하기 쉽습니다.
이 자동화를 처음 만드는 순서
처음부터 모든 업무를 자동화할 필요는 없습니다. 다음 순서로 테스트하면 오류를 찾기 쉽습니다.
- 내 개인 Calendar에 테스트 일정 1개를 등록합니다.
- 제목·시간·장소가 정확한지 확인합니다.
- Google Sheets에서 여러 일정 등록을 테스트합니다.
- 등록완료 상태를 추가해 중복 등록을 막습니다.
- 그다음 AI를 이용해 업무 문장을 일정 데이터로 변환합니다.
- 회사 업무에 적용하기 전 개인정보와 사내 규정을 확인합니다.
이렇게 하면 “AI가 알아서 모든 것을 처리하는 자동화”보다 훨씬 단순한 형태로 시작할 수 있습니다. 특히 비개발 직장인이라면 작동하는 작은 자동화 하나를 만든 뒤 입력과 검증 단계를 조금씩 확장하는 방식이 현실적입니다.
FAQ
Q1. Google Apps Script를 사용하려면 별도 서버가 필요한가요?
이 예제처럼 Google Calendar와 Google Sheets를 연동하는 기본적인 자동화는 Apps Script 안에서 처리할 수 있습니다. 별도의 개인 서버를 먼저 구축할 필요는 없습니다.
Q2. ChatGPT가 Google Calendar에 직접 일정을 등록하게 만들 수 있나요?
가능한 자동화 구조는 사용하는 ChatGPT 환경과 연결 방식에 따라 달라집니다. 하지만 처음 구축한다면 ChatGPT가 업무 내용을 일정 데이터로 정리하고, 사람이 확인한 뒤 Apps Script가 Calendar에 등록하는 구조부터 시작하는 편이 관리하기 쉽습니다.
Q3. 회사의 회의 내용을 AI에 입력해도 되나요?
회사 정책에 따라 다릅니다. 외부 AI 서비스 사용이 허용되지 않은 정보라면 입력하지 않아야 합니다. 특히 고객 개인정보, 계약 내용, 인사정보, 미공개 재무정보 등은 일정 자동화에 필요하지 않다면 처음부터 제거하고, 회사에서 승인한 AI 도구와 데이터 처리 범위를 우선 확인하는 것이 안전합니다.
