← 개발일지

옵시디언 구글 캘린더 연동 세팅 가이드


📅 옵시디언 구글 캘린더 연동 세팅 가이드

[!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 이동 후:

  1. User Type → External 선택
  2. 앱 이름 (아무거나), 사용자 지원 이메일, 개발자 이메일 입력
  3. Scopes 단계 → **아무것도 추가하지 않고 "Save and Continue"**로 넘김 (플러그인이 로그인 시 자동 요청함)
  4. Test users 단계에서 본인 Gmail 주소를 반드시 추가
  5. 저장 완료

[!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 IDClient Secret을 복사해 둔다.

6단계: 플러그인 로그인

  1. 옵시디언 → 플러그인 설정 → "Use own authentication client" 활성화
  2. Client ID와 Client Secret 입력
  3. Login 클릭 → 브라우저 창 열림
  4. 구글 계정 선택
  5. "앱이 인증되지 않았습니다" 경고 → 고급(Advanced) 클릭 → "프로젝트 이름으로 이동(안전하지 않음)" 클릭
  6. 동의 화면에서 모든 권한 허용
  7. 인증 완료
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.readonlycalendar.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 설정 없이 간단하게 일정만 가져오고 싶다면 이 방법을 쓴다.

  1. Community Plugins에서 "ICS" 설치·활성화
  2. 구글 캘린더 웹 → 캘린더 이름 옆 점 세 개 → Settings and sharing → Integrate calendar → Secret address in iCal format URL 복사
  3. ICS 플러그인 설정의 Calendar URL에 붙여넣기
  4. Daily Note에서 Ctrl/Cmd + P → "ICS: import events" 실행

제약: 읽기 전용이며, Daily Notes 또는 Periodic Notes 플러그인과 함께 사용해야 한다.


대안 방법: Custom Frames (웹 임베드)

API 연동 없이 구글 캘린더 웹 자체를 옵시디언 안에 띄우는 방법이다.

  1. Community Plugins에서 "Custom Frames" 또는 "Surfing" 설치
  2. 플러그인 설정에서 URL → https://calendar.google.com 입력
  3. 탭을 핀(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 다이어그램 (세팅 플로우)
  • 마크다운 테이블
  • 위키링크