gws CLI 구글 캘린더 설정 가이드: 초보자도 쉽게 시작하기

한줄 요약

> Windows 초보자가 Grok("제나비서")과 함께 [gws-cli 가이드](https://muniv.github.io/gws-cli-guide/)를 한 줄씩 따라가며, OAuth·테스트 사용자·API 활성화 문제를 전부 스스로 해결하고, 결국 VS code확장프로그램에서 Claude Code(제나비서) "이번주 일정 중요한 것만 알려줘" 한마디로 구글 캘린더를 조회하는 데까지 성공한 이야기.

---

시작 계기

지피터스 23기 스터디에서 나온 목표는 단순했습니다.

> "구글 워크스페이스를 터미널과 AI가 직접 다루게 만들자."

말은 쉬운데, 저는 Windows를 쓰는 비개발자에 가까운 사용자였습니다. 다행히 [gws-cli-guide](https://muniv.github.io/gws-cli-guide/) (v0.22.5 기준)라는 상세 가이드가 있었고, Grok을 "제나비서"로 세팅해 클릭 한 번 한 번까지 안내받으며 진행했습니다. 이 글은 그 과정에서 실제로 막혔던 지점과 해결법을 그대로 기록한 것입니다.

---

작업 과정 (시간순)

STEP 1~2. gws CLI 설치

Windows에서는 npm install을 쓰지 말라는 가이드의 경고를 그대로 따랐습니다. 대신 zip 파일을 받아서 설치했습니다.

```

1. gws-cli 릴리즈 zip 다운로드

2. 압축 해제

3. PATH에 등록하거나 gws.exe를 직접 실행

```

설치 확인:

```cmd

gws --version

```

그리고 일부러 에러를 한 번 내서, 설정 파일이 어디를 보는지 확인했습니다. 제 경우 경로는 이랬습니다.

```

C:\Users\USER\.config\gws\client_secret.json

```

STEP 3~4. Google Cloud Console 설정 (가장 많이 막힌 구간)

Google Cloud Console에서 프로젝트를 만들고 → OAuth 동의 화면을 설정하고 → Desktop 앱으로 클라이언트를 발급받아 client_secret.json을 받는 단계입니다. 여기서 두 번 막혔습니다.

**문제 1 — .config 폴더가 탐색기에 안 보임**

Windows 탐색기는 .으로 시작하는 폴더를 숨김 취급하지 않지만, 새 폴더 만들기 창에서 .config만 입력하면 이상하게 동작하는 경우가 있습니다. %USERPROFILE%로 이동한 뒤 .config.처럼 끝에 점을 하나 더 붙여서 만드는 트릭으로 해결했습니다 (엔터를 치면 마지막 점은 자동으로 사라지고 .config 폴더가 만들어집니다).

**문제 2 — 파일 확장명이 두 번 붙음**

파일 이름 바꾸기로 client_secret.json을 만들려고 했는데, 탐색기가 확장자를 숨긴 상태라 실제로는 client_secretjsonjson이 되어버렸습니다.

**해결:** 탐색기 상단 메뉴 **보기 → 파일 이름 확장명** 체크박스를 켜고, 정확히 client_secret.json으로 다시 수정.

STEP 5. 로그인 (OAuth)

```cmd

gws auth login --services calendar,drive

```

스코프 선택 화면이 뜨고 Enter로 넘겼더니 브라우저에서 이런 에러가 떴습니다.

> **"액세스 차단됨: gws-cli은(는) Google 인증 절차를 완료하지 않았습니다"**

**원인:** OAuth 동의 화면에 제 계정([email protected])을 테스트 사용자로 등록하지 않았기 때문입니다. 앱이 아직 "테스트 중" 상태라, 등록된 테스트 사용자만 로그인할 수 있습니다.

**해결:**

1. console.cloud.google.com/apis/credentials/consent 접속

2. 테스트 사용자 목록에 내 이메일 추가

3. gws auth login 재시도 → 성공, 브라우저에 "You may now close this window." 메시지 확인

STEP 6. API 활성화

로그인은 됐는데 정작 일정을 조회하니 이번엔 이런 에러가 나왔습니다.

```cmd

gws calendar +agenda --today --format table

```

> **"Google Calendar API has not been used in project … or it is disabled"**

인증(로그인)과 API 사용 권한은 별개라는 걸 이때 알았습니다. Cloud Console에서 **Calendar API**와 **Drive API**를 각각 Enable 시키고, 1~2분 정도 기다린 뒤 같은 명령을 재실행하니 오늘/이번 주 일정이 표로 정상 출력됐습니다.

STEP 7. Claude Code와 연결

마지막으로 cmd(PowerShell 아님)에서 스킬을 하나씩 설치했습니다.

```cmd

npx skills add https://github.com/googleworkspace/cli -g -y --skill gws-shared

npx skills add https://github.com/googleworkspace/cli -g -y --skill gws-calendar

npx skills add https://github.com/googleworkspace/cli -g -y --skill gws-drive

```

이후 Claude Code에서 "이번주 일정 중요한 것만 알려줘"라고 물었더니, 실제로 구글 캘린더를 읽어와 정리해주는 것까지 확인했습니다.

---

막혔던 순간 TOP 5

| # | 상황 | 원인 | 해결 |

|---|---|---|---|

| 1 | client_secretjsonjson 파일 생성됨 | 확장자 숨김 상태에서 이름 변경 | 탐색기에서 확장명 표시 켜기 |

| 2 | .config 폴더가 안 만들어짐 | Windows 탐색기가 점(`.`)으로 시작하는 이름 처리를 이상하게 함 | .config.처럼 끝에 점 하나 더 붙여 생성 |

| 3 | "액세스 차단됨" 에러 | OAuth 테스트 사용자 미등록 | Cloud Console에서 내 이메일을 테스트 사용자로 추가 |

| 4 | 로그인은 됐는데 조회 실패 | Calendar/Drive API가 꺼져 있음 | API Enable 후 1~2분 대기 |

| 5 | 스킬 설치 명령이 안 먹힘 | PowerShell과 cmd의 차이 | npx skills add는 cmd에서 실행 |

---

핵심 팁

- **Windows에서는 무조건 cmd 사용** — PowerShell에서 안 되는 명령이 있습니다.

- **파일 이름 확장명을 항상 보이게 설정할 것** — 탐색기 → 보기 → 파일 이름 확장명 체크.

- **OAuth 테스트 사용자 등록을 절대 빠뜨리지 말 것** — 가장 많이 막히는 지점.

- **API를 Enable했는데 바로 안 되면 1~2분 기다릴 것** — 전파 지연이 있습니다.

- **스킬은 한 번에 하나씩 설치할 것** — 한꺼번에 넣으면 원인 추적이 어렵습니다.

---

결과 / 임팩트

- 터미널에서 gws calendar +agenda --today --format table 한 줄로 오늘 일정 확인 가능

- Claude Code가 gws 스킬을 통해 캘린더 일정을 직접 읽고 정리해줌

- 이후 개인 멀티에이전트 시스템("뽀짝이 사단")에 구글 캘린더·드라이브 기능을 붙일 수 있는 기반 완성

향후 계획

- gws를 활용한 일정 자동 정리 / 드라이브 파일 관리 자동화

- Claude Code + gws를 "뽀짝이 사단" 에이전트에 통합

- 같은 과정을 다른 스터디원에게 전파할 수 있는 체크리스트 제작

1
1개의 답글
지피터스 뉴스레터

이번 주 AI, 딱 쓸 것만

매주 월요일 오후,
읽고 바로 써먹을 AI 소식만