옵시디언 구글 캘린더 연동 세팅 가이드
📅 옵시디언 구글 캘린더 연동 세팅 가이드
[!tldr] 요약 옵시디언에서 구글 캘린더를 연동하는 방법은 3가지가 있다.
- Google Calendar 플러그인 — 양방향 연동, 기능 풍부, 설정 복잡 (Google Cloud OAuth 필요)
- Obsidian ICS 플러그인 — 읽기 전용, 설정 간단, Daily Note에 일정 삽입
- Custom Frames / Web View — 가장 단순, 구글 캘린더 웹을 탭으로 띄움, 데이터 연동 없음
이 문서는 Google Calendar 플러그인 세팅을 직접 수행하며 겪은 과정과 트러블슈팅을 기록한다.
연동 방식 비교
| 방식 | 연동 방향 | 설정 난이도 | 주요 기능 | | -------------------- | ----- | ------------- | ---------------------------- | | Google Calendar 플러그인 | 양방향 | 높음 (OAuth 필요) | 이벤트 CRUD, 월/주/일 뷰, EventNote | | Obsidian ICS | 읽기 전용 | 낮음 (URL만 복사) | Daily Note에 일정 삽입 | | Custom Frames | 웹 임베드 | 매우 낮음 | 구글 캘린더 UI 그대로 사용 |
Google Calendar 플러그인 세팅 (전체 과정)
1단계: 플러그인 설치
Settings → Community Plugins → "Google Calendar" 검색 → 설치 → 활성화
2단계: Google Cloud 프로젝트 생성
Google Cloud Console에 접속하여 새 프로젝트를 만든다.
[!warning] "$300 무료 크레딧" 화면에 대해 처음 접속하면 유료 서비스 프로모션이 뜨는데, 무시하고 넘어가면 된다. OAuth 클라이언트 생성과 Calendar API 활성화는 완전 무료이며 결제 정보 등록도 필요 없다.
프로젝트 생성 방법: 상단 프로젝트 선택 드롭다운 → New Project 클릭
3단계: Google Calendar API 활성화
왼쪽 메뉴 APIs & Services → Library → "Google Calendar API" 검색 → Enable
4단계: OAuth 동의 화면 설정
APIs & Services → OAuth consent screen 이동 후:
- User Type → External 선택
- 앱 이름 (아무거나), 사용자 지원 이메일, 개발자 이메일 입력
- Scopes 단계 → **아무것도 추가하지 않고 "Save and Continue"**로 넘김 (플러그인이 로그인 시 자동 요청함)
- Test users 단계에서 본인 Gmail 주소를 반드시 추가
- 저장 완료
[!important] Test users 등록은 필수 앱이 "테스트 중(Testing)" 상태이기 때문에, 등록된 테스트 사용자만 접근 가능하다. 이걸 빠뜨리면
403: access_denied오류가 발생한다. (아래 트러블슈팅 참고)
5단계: OAuth Client ID 발급
APIs & Services → Credentials 이동 → 상단 "+ CREATE CREDENTIALS" → "OAuth client ID" 선택
[!tip] Credentials 메뉴 찾기 왼쪽 상단 햄버거 메뉴(≡) → APIs & Services → Credentials로 이동하거나, 상단 검색창에 "Credentials"를 직접 입력하면 된다.
설정값:
| 항목 | 값 |
|---|---|
| Application type | Web application |
| Authorized JavaScript origins | http://127.0.0.1:42813 |
| Authorized JavaScript origins (추가) | https://google-auth-obsidian-redirect.vercel.app |
| Authorized redirect URIs | http://127.0.0.1:42813/callback |
| Authorized redirect URIs (추가) | https://google-auth-obsidian-redirect.vercel.app/callback |
생성 완료 후 Client ID와 Client Secret을 복사해 둔다.
6단계: 플러그인 로그인
- 옵시디언 → 플러그인 설정 → "Use own authentication client" 활성화
- Client ID와 Client Secret 입력
- Login 클릭 → 브라우저 창 열림
- 구글 계정 선택
- "앱이 인증되지 않았습니다" 경고 → 고급(Advanced) 클릭 → "프로젝트 이름으로 이동(안전하지 않음)" 클릭
- 동의 화면에서 모든 권한 허용
- 인증 완료
flowchart TD
A[플러그인 설치] --> B[Google Cloud 프로젝트 생성]
B --> C[Calendar API 활성화]
C --> D[OAuth 동의 화면 설정]
D --> E[Test users에 본인 이메일 추가]
E --> F[Credentials에서 OAuth Client ID 발급]
F --> G[플러그인에 Client ID / Secret 입력]
G --> H[Login → 구글 인증 완료]
트러블슈팅: 직접 겪은 문제들
문제 1: Google Cloud Console 유료 서비스 안내
증상: 첫 접속 시 "$300 무료 크레딧으로 Cloud 사용해보기" 화면이 뜸
해결: 이 화면은 유료 서비스 프로모션일 뿐, OAuth 설정과 Calendar API는 무료다. 무시하고 프로젝트 생성으로 바로 넘어가면 된다.
문제 2: OAuth 동의 화면에서 Scopes 단계가 안 보임
증상: 동의 화면 설정 중 스코프 추가 화면이 없거나 간소화됨
해결: 스코프를 직접 추가하지 않아도 된다. 플러그인이 로그인할 때
calendar.readonly와calendar.events권한을 자동으로 요청한다. Save and Continue로 넘기면 정상 작동한다.
문제 3: Credentials 메뉴를 못 찾음
증상: Google Cloud Console UI에서 Credentials 위치가 직관적이지 않음
해결: 왼쪽 상단 햄버거 메뉴(≡) → APIs & Services → Credentials. 또는 상단 검색창에 "Credentials" 입력.
문제 4: 403 access_denied 오류
증상: 로그인 시도 시 아래 오류 발생
오류 403: access_denied 앱은 현재 테스트 중이며 개발자가 승인한 테스터만 앱에 액세스할 수 있습니다.원인: OAuth 동의 화면의 Test users에 본인 이메일이 등록되지 않음
해결: APIs & Services → OAuth consent screen → Audience(또는 Test users) → "+ Add users" → 본인 Gmail 주소 추가 → 저장 → 다시 Login 시도
대안 방법: Obsidian ICS (간단한 읽기 전용)
Google Cloud 설정 없이 간단하게 일정만 가져오고 싶다면 이 방법을 쓴다.
- Community Plugins에서 "ICS" 설치·활성화
- 구글 캘린더 웹 → 캘린더 이름 옆 점 세 개 → Settings and sharing → Integrate calendar → Secret address in iCal format URL 복사
- ICS 플러그인 설정의 Calendar URL에 붙여넣기
- Daily Note에서
Ctrl/Cmd + P→ "ICS: import events" 실행
제약: 읽기 전용이며, Daily Notes 또는 Periodic Notes 플러그인과 함께 사용해야 한다.
대안 방법: Custom Frames (웹 임베드)
API 연동 없이 구글 캘린더 웹 자체를 옵시디언 안에 띄우는 방법이다.
- Community Plugins에서 "Custom Frames" 또는 "Surfing" 설치
- 플러그인 설정에서 URL →
https://calendar.google.com입력 - 탭을 핀(pin) 해두면 항상 캘린더가 열린 상태로 유지됨
장점: 구글 캘린더의 모든 기능을 그대로 사용 가능. 단점: 노트와의 데이터 연동 불가.
용어 해설
| 용어 | 원어 | 뜻 | |---|---|---| | OAuth | Open Authorization | 제3자 앱이 사용자 계정에 접근할 수 있도록 하는 인증 프로토콜 | | Client ID | Client Identifier | OAuth 앱을 식별하는 고유 ID | | Client Secret | - | OAuth 앱의 비밀 키 (외부 노출 금지) | | Scopes | - | 앱이 요청하는 권한 범위 | | iCal | iCalendar | 캘린더 데이터를 교환하기 위한 표준 형식 | | EventNote | - | Google Calendar 플러그인에서 이벤트에 연결된 옵시디언 노트 |
✍️ 나의 연결
[!abstract] 이 메모를 읽고 떠오른 연결을 직접 기록하는 공간 다른 메모, 경험, 아이디어와의 관계를 자유롭게 적는다.
| 연결 대상 | 관계 / 이유 | | ---------------------------- | ------- | | [[옵시디언-구글캘린더-연동-완벽가이드-blog]] | 블로그 발행 |
떠오른 생각:
- 생각보다 어려운데 생각보다 단순하다.
📋 문서 생성 요구사항
| 항목 | 내용 | |---|---| | 생성일 | 2026-04-10 | | 도구 | Claude (Anthropic) | | 원본 | Claude와의 대화에서 직접 세팅하며 기록한 과정 |
요청 내용
- 옵시디언 구글 캘린더 연동법을 대화 과정의 트러블슈팅 포함하여 세팅 메모로 정리
- 폴더 추천은 문서 안이 아닌 대화에서 직접 안내
활용된 옵시디언 기능
- YAML frontmatter (tags, aliases, created, source)
- 콜아웃 (tldr, warning, important, tip, abstract)
- Mermaid 다이어그램 (세팅 플로우)
- 마크다운 테이블
- 위키링크