2026년 9월 22일 화요일새로운 흐름을 읽고, 필요한 정보를 정확하게 전합니다.
EDITORIAL

버스 파업 출근 경로 자동화: Google 스프레드시트·캘린더로 대체 이동 일정 만드는 법

버스 파업 출근 경로 자동화는 실시간 교통 상황을 대신 예측하는 기술이 아니라, 내가 확인한 대체 이동 계획을 스프레드시트·캘린더·지도 링크에 한 번에 정리해 놓는 방법입니다. 출발지와 목적지, 평소보다 앞당긴 출발 시각만 입력하면 캘린더에 알림용 일정이 생기고, 일정 메모에서 대중교통 길찾기를 바로 열 수 있습니다. 다만 운행 여부와 임시 셔틀 노선은 바뀔 수 있으므로, 출발 직전에는 지자체 교통 공지와 현장 안내를 다시 확인해야 합니다.

대체 출근 경로를 디지털 도구로 확인하는 출근자

2026년 9월 14일 기준으로 확인한 서울시 교통 페이지에는 1월 13일 시내버스 파업 관련 비상수송 안내가 ‘파업종료’ 상태로 표시돼 있습니다. 즉, 과거 또는 종료된 공지를 다음 날의 운행 판단 근거로 그대로 쓰면 안 됩니다. 이 글의 자동화는 파업 발생 여부를 확정하는 도구가 아니라, 공식 공지에서 확인한 대체 계획을 빠르게 실행하기 위한 개인용 정리 도구입니다.

먼저 만들 표: 날짜·출발지·목적지·출발 시각

새 Google 스프레드시트를 만들고 시트 이름을 출근대체경로로 바꿉니다. 첫 행에는 아래처럼 열 이름을 넣으세요. 날짜는 2026-09-15, 시각은 08:00처럼 입력하면 예제 코드가 읽기 쉽습니다.

열입력할 내용예시

A: 날짜대체 경로를 쓸 날짜2026-09-15
B: 출발지집 또는 출발 정류장·역서울시청
C: 목적지회사·학교·약속 장소강남역
D: 출발 시각알림을 받을 출발 예정 시각08:00
E: 대체안 메모확인한 지하철역, 셔틀, 도보 등시청역까지 도보 후 2호선
F: 등록 상태자동 입력되는 중복 방지 표시완료

출발지와 목적지는 정확한 도로명 주소가 아니어도 장소명으로 시작할 수 있습니다. 다만 동명이인이 많은 건물·역 이름은 구·시를 함께 적는 편이 안전합니다. Google Maps URL은 출발지, 목적지, 이동 수단 같은 값을 넣어 지도 앱 또는 브라우저에서 길찾기를 열 수 있으며, 이 URL 방식 자체에는 API 키가 필요하지 않습니다.

스프레드시트 입력값이 캘린더와 지도 링크로 연결되는 자동화 개념

Apps Script로 캘린더 일정과 지도 링크 만들기

스프레드시트에서 확장 프로그램 → Apps Script를 열고, 기본으로 보이는 코드를 지운 뒤 아래 예제를 붙여 넣으세요. 스크립트 편집기 설정의 시간대는 Asia/Seoul로 맞추는 것이 좋습니다. 처음 실행하면 Google Calendar에 일정을 만드는 권한을 요청합니다.

function addBackupCommutes() {
const sheet = SpreadsheetApp.getActive()
.getSheetByName(‘출근대체경로’);

if (!sheet) {
throw new Error(‘시트 이름을 출근대체경로로 확인하세요.’);
}

const rows = sheet.getDataRange().getDisplayValues().slice(1);
const calendar = CalendarApp.getDefaultCalendar();

rows.forEach((row, index) => {
const [date, origin, destination, time, memo, status] = row;

if (!date || !origin || !destination || !time || status === ‘완료’) {
return;
}

// 날짜: 2026-09-15 / 시각: 08:00 형식으로 입력
const start = new Date(`${date}T${time}:00+09:00`);
const end = new Date(start.getTime() + 30 * 60 * 1000);

const mapsUrl = ‘https://www.google.com/maps/dir/?api=1’
+ `&origin=${encodeURIComponent(origin)}`
+ `&destination=${encodeURIComponent(destination)}`
+ ‘&travelmode=transit’;

const description = [
`대체안: ${memo || ‘출발 전 공식 공지와 운행 정보를 확인’}`,
`길찾기: ${mapsUrl}`
].join(‘\n’);

calendar.createEvent(
`대체 출근 확인: ${destination}`,
start,
end,
{ description: description, location: origin }
);

// F열에 완료를 써서 같은 행을 다시 등록하지 않음
sheet.getRange(index + 2, 6).setValue(‘완료’);
});
}

저장한 뒤 함수 목록에서 addBackupCommutes를 선택하고 실행합니다. 권한 안내가 나오면 본인 계정의 캘린더 접근을 허용한 뒤 다시 실행하세요. 정상 처리되면 F열이 완료로 바뀌고, 기본 Google Calendar에 30분짜리 일정이 생성됩니다.

일정 설명의 지도 링크를 누르면 Google Maps가 열립니다. URL에 travelmode=transit를 넣었기 때문에 대중교통 길찾기를 요청하지만, 실제 제시 경로와 운행 가능 여부는 링크를 여는 시점의 지도 정보 및 운영 상황에 따라 달라질 수 있습니다.

출발 직전 대중교통 경로를 다시 확인하는 모습

자동화 전에 꼭 정할 두 가지

첫째, 이 코드는 기본 캘린더에 일정을 넣습니다. 업무 일정과 섞이는 것이 싫다면 먼저 ‘비상 출근’ 같은 별도 캘린더를 만들고, 이후에는 코드의 getDefaultCalendar() 부분을 해당 캘린더를 지정하는 방식으로 바꾸는 것을 권합니다. Google Calendar는 여러 캘린더를 만들고 각각 다른 공유 설정을 둘 수 있습니다. 출근 위치나 이동 시간이 드러나는 일정은 공개 캘린더로 공유하지 않는 편이 좋습니다.

둘째, 이 자동화는 중복 등록을 막기 위해 F열에 완료를 기록합니다. 경로를 수정한 뒤 새 일정을 만들려면 기존 캘린더 일정을 먼저 삭제하고 F열의 완료를 비운 뒤 다시 실행하세요. 그대로 반복 실행하면 일정이 여러 개 생길 수 있습니다.

파업·운행 변동일에 쓰는 순서

  • 서울시·해당 지자체·교통 운영기관 공지에서 운행 변동, 임시 셔틀, 지하철 증회 여부를 확인합니다.
  • 스프레드시트 E열에 ‘어느 역까지 어떻게 갈지’를 짧게 적습니다.
  • 평소보다 앞당긴 출발 시각을 D열에 넣고 스크립트를 한 번 실행합니다.
  • 출발 직전에 캘린더 일정의 지도 링크를 열어 실제 대중교통 경로를 다시 확인합니다.

서울시의 과거 비상수송 안내에서도 지하철 증회, 자치구 셔틀, 실시간 안내 채널 등이 상황에 따라 운영됐습니다. 핵심은 ‘자동으로 판단하게 하기’보다, 공지에서 확인한 내용을 놓치지 않도록 개인 일정에 연결하는 것입니다. 코딩을 처음 배우는 단계라면 이 예제처럼 입력값을 읽고, 링크를 조합하고, 결과를 캘린더에 쓰는 흐름부터 익혀 두면 회의 준비·현장 방문·출장 일정에도 같은 구조를 응용할 수 있습니다.

작성 기준: 2026년 9월 14일. 교통 운행 정보는 변동 가능하므로 공식 공지와 현장 안내를 우선하세요.

함께 읽으면 좋은 글

자주 확인하는 내용

이 스크립트를 쓰려면 Google Maps API 키가 필요한가요?

아니요. 이 글의 예제는 Google Maps URL로 길찾기 화면을 여는 방식이라 API 키가 필요하지 않습니다. 다만 Calendar에 일정을 만드는 권한은 처음 실행할 때 허용해야 합니다.

실행할 때마다 캘린더 일정이 중복되나요?

예제는 등록한 행의 F열에 ‘완료’를 써서 같은 행의 재등록을 막습니다. F열을 비우고 다시 실행하면 새 일정이 만들어질 수 있습니다.

이 자동화가 버스 운행 여부도 자동으로 확인해 주나요?

아니요. 이 도구는 확인한 대체 계획을 일정과 지도 링크로 정리합니다. 실제 운행 여부, 임시 셔틀, 혼잡도는 출발 직전에 공식 공지와 지도 정보를 다시 확인해야 합니다.

확인한 출처