사용법#

CalDAV 계정 추가하기#

  1. 설정 → Harang Calendar를 여세요.

  2. CalDAV 서버 계정 아래에서 새 서버 계정 추가를 클릭하세요.

  3. 계정 정보를 입력하세요:

항목

설명

계정 이름

이 계정을 가리키는 이름표로, {{hrcal: 자동완성에서 고를 때 표시됩니다. 실제로 참조에 담기는 것은 이 이름이 아니라 계정의 내부 id이므로, 나중에 여기서 계정 이름을 바꿔도 이미 삽입해 둔 참조는 깨지지 않습니다.

서버 URL

CalDAV 기본 URL 또는 정확한 캘린더 컬렉션 URL.

사용자명 / 비밀번호

CalDAV 계정의 로그인 정보.

시간대

UTC가 아닌 일정 시간을 해석하는 데 사용됩니다. 목록에서 캘린더의 시간대를 고르거나, 목록에 없다면 UTC 오프셋 직접 입력…을 선택하세요.

  1. 연결 테스트 및 탐색을 클릭하세요. 플러그인이 표준 CalDAV 검색 절차(current-user-principalcalendar-home-set → 캘린더 컬렉션)를 따라가며 그 계정 아래 있는 모든 캘린더를 찾아 목록에 보여줍니다. 서버 URL이 이미 캘린더 컬렉션을 직접 가리키고 있다면, 추가 검색 없이 그대로 사용됩니다.

  2. 찾은 캘린더마다 각각 행이 생기고, 이 캘린더 표시 토글과 선택적인 색상 재정의(#4285F4처럼 유효한 CSS 색상 값 — 비워두면 서버가 제공하는 색상을 사용, 있는 경우) 항목이 붙습니다. 토글이 켜진 캘린더만 가져와서 플러그인 어디에서든 표시됩니다.

계정은 여러 개 추가할 수 있습니다(여러 서버용으로, 또는 같은 서버를 여러 번). 모든 계정의 활성화된 캘린더 일정이 아젠다/월간 뷰에 합쳐져서 나타납니다. 서버에서 캘린더를 추가하거나 제거했다면 연결 테스트 및 탐색을 다시 실행하세요 — 플러그인이 스스로 감지하지는 않습니다.

노트에서 날짜/일정 참조하기#

{{hrcal:을 입력해 단계별 참조를 시작하세요 - 날짜용과 일정용 트리거가 따로 있지 않습니다:

Let's meet {{hrcal:
  1. 자동완성 팝업에 등록된 계정 이름이 나열됩니다. 입력하면 목록이 좁혀집니다. 하나를 선택하면 표시 이름이 아니라 계정의 내부 id인 <accountId>:이 뒤에 붙고 바로 다음 단계가 열립니다.

  2. 이제 팝업에는 그 계정의 캘린더 이름이 나열됩니다. 하나를 선택하면 <calendarName>:이 뒤에 붙습니다.

  3. 이제 팝업에는 다가오는 날짜제목이 일치하는 일정 (대소문자 구분 없는 부분 문자열 검색, 공백 포함)이 함께 나열됩니다 - 숫자를 입력하면 날짜 목록이 좁혀지고, 텍스트를 입력하면 일정 목록이 좁혀지며, 둘 다 함께 나타날 수도 있습니다.

날짜 후보를 선택하면 {{hrcal:<accountId>:<calendarName>:date:2026-08-07}}이 삽입되고 카드 위젯으로 표시됩니다: 그 날짜의 제목과, 그 특정 계정/캘린더의 그날 일치하는 일정이 모두 그 아래 나열됩니다(없으면 “이 날짜에는 일정이 없습니다.” 메시지).

일정 후보를 선택하면 {{hrcal:<accountId>:<calendarName>:event:<uid>}}이 삽입되고 인라인 칩(둥근 알약 모양 안에 일정 제목과 시간 범위)으로 표시됩니다.

칩(또는 날짜 위젯 안의 일정 행)을 클릭하면 그 일정의 일시/장소/메모(있는 항목만) 정보를 담은 작은 팝업이 열립니다. 팝업 바깥을 클릭하거나 Esc를 누르면 닫힙니다. 칩이 흐릿하게 점선 테두리로 보인다면, 플러그인이 알고 있는 일정으로 확인하지 못한 것입니다 — 문제 해결 & FAQ을 참고하세요.

Because <accountId> is the account’s stable internal id rather than its display name, renaming an account in Settings never breaks a reference inserted after this id-based scheme took effect — only <calendarName> is still name-based, so renaming a calendar can still break existing references, same as before. This is not retroactive: a reference typed or inserted before this change used the account’s old name-based segment, and since there is no id-or-name fallback, it will no longer resolve. Delete and re-insert any such reference via the {{hrcal: autocomplete to fix it.

노트를 특정 계정/캘린더로 범위 제한하기#

경고

현재 사용되지 않습니다. {{hrcal:...}} 참조가 계정과 캘린더를 직접 명시하므로, 더 이상 이 프론트매터를 읽어서 범위를 정하는 곳이 없습니다. 나중에 다른 기능으로 되살아날 경우를 대비해 여기 문서로 남겨둡니다.

과거에는 날짜 위젯이 기본적으로 모든 계정의 활성화된 캘린더를 대상으로 했고, 노트의 프론트매터로 그 범위를 좁힐 수 있었습니다:

---
harang-account: Work
harang-calendar: Team events
---

프론트매터

범위

harang-account

그 계정 아래 활성화된 모든 캘린더.

harang-calendar

그 이름과 정확히 일치하는 캘린더 — 모든 계정을 통틀어(계정이 하나뿐이거나 구분할 필요가 없을 때 유용합니다).

둘 다

그 계정 안의 그 캘린더 하나로만 좁혀집니다 — 이름이 같은 두 캘린더를 구분하거나, 서로 다른 계정에 같은 이름의 캘린더가 있을 때 구분하는 방법입니다.

둘 다 없음

범위 제한 없음(기본값).

두 값 모두 일반 텍스트입니다 — 설정 화면에 보이는 그대로(계정 이름은 직접 지은 이름, 캘린더 이름은 서버가 알려준 이름) 복사해서 붙여넣거나 직접 타이핑하세요. 두 항목 다 자동완성은 제공하지 않습니다. 값이 알려진 계정/캘린더와 일치하지 않으면, 날짜 위젯은 아무것도 표시하지 않는 대신 인식 못한 값의 이름을 담은 경고를 보여줍니다.

참고

Obsidian의 Properties 패널은 속성의 값 타입(텍스트 vs 목록)을 노트 단위가 아니라 보관소(vault) 전체에서 키 단위로 기억합니다. harang-accountharang-calendar를 보관소 어딘가에서 한 번이라도 목록으로 입력한 적이 있다면, 이후에도 Properties 패널이 목록 형태 입력창을 계속 제안할 수 있습니다. 항목이 하나뿐인 목록(예: harang-calendar:\n  - Team events)은 일반 문자열과 똑같이 읽히므로 문제가 되지는 않습니다 — 다만 두 키 모두 원래 의도한 건 일반 텍스트 값 하나뿐입니다.

노트 자체를 캘린더 뷰에 표시하기#

위 기능들은 전부 CalDAV 서버에서 가져오는 것입니다. 이와 별개로, 노트 자체가 사이드바 아젠다 목록과 월간 그리드에 항목으로 나타날 수도 있습니다 — Obsidian 안에서만 일어나는 일이고, CalDAV 서버에 쓰거나 읽는 일은 전혀 없습니다:

---
harang-date: 2026-08-15
harang-repeat: FREQ=WEEKLY;BYDAY=MO
harang-time: 14:00-15:00
---

harang-date(필수, YYYY-MM-DD)는 노트가 표시될 날짜입니다. harang-repeat(선택)은 RRULE 문자열입니다 — 실제 반복되는 CalDAV 일정을 전개할 때 이미 쓰고 있는 것과 정확히 같은 문법/파싱(rrule 패키지)이며, 일치하는 발생일마다 노트가 반복해서 나타나게 합니다. 없으면 harang-date한 날짜에만 나타납니다. harang-time(선택)은 24시간제 HH:MM-HH:MM 범위입니다 — 없으면 노트 일정은 종일로 표시됩니다. 노트 일정에는 항상 같은 목록의 실제 CalDAV 일정과 시각적으로 구분되도록 점선 테두리가 붙습니다. 클릭하면 일정 상세 팝업이 아니라 그 노트 자체가 열립니다.

harang-time 값이 잘못됐거나(형식 오류, 또는 시작이 끝보다 늦은 경우) 조용히 무시됩니다 — harang-repeat 값이 잘못되면 그냥 반복하지 않는 것으로 대체되는 것과 마찬가지로, 노트는 종일 표시로 대체됩니다.

harang-repeat은 표준 iCalendar RRULE 키워드를 받습니다:

키워드

의미

FREQ(필수)

DAILY, WEEKLY, MONTHLY, YEARLY 중 하나.

INTERVAL

매번이 아니라 N단위마다 반복합니다. 예를 들어 FREQ=WEEKLY와 함께 INTERVAL=2를 쓰면 2주마다입니다.

BYDAY

요일 하나 이상(MO, TU, WE, TH, FR, SA, SU)을 쉼표로 구분해서, 예: BYDAY=MO,WE,FR.

COUNT

전체 발생 횟수. UNTIL과 동시에 쓸 수 없습니다.

UNTIL

YYYYMMDD 형식으로 마지막 반복 날짜, 예: UNTIL=20261231. COUNT와 동시에 쓸 수 없습니다.

harang-repeat: FREQ=WEEKLY;BYDAY=MO                          # every Monday
harang-repeat: FREQ=DAILY;COUNT=5                             # 5 days in a row
harang-repeat: FREQ=MONTHLY;INTERVAL=2                        # every other month, same date
harang-repeat: FREQ=WEEKLY;BYDAY=MO,WE,FR;UNTIL=20261231      # Mon/Wed/Fri through the end of 2026

harang-repeat 값이 잘못됐으면 에러를 내는 대신 조용히 무시됩니다(그 노트가 그냥 반복하지 않을 뿐입니다).

일정 둘러보기: 사이드바 아젠다 뷰#

명령 팔레트에서 사이드바에서 캘린더 열기 명령을 실행하면, 앞으로 30일간의 모든 일정(CalDAV 일정과 harang-date가 있는 노트 모두 합쳐서 정렬됨)을 날짜별로 묶어 보여주는 사이드바 뷰가 열립니다. 오늘/내일에 해당하는 날짜는 제목이 “오늘”/”내일”로 표시됩니다. 종일 일정은 시간 대신 그렇게 표시됩니다. 일정을 클릭하면 다른 곳과 동일한 상세 팝업이 열리고, 노트 항목을 클릭하면 그 노트가 열립니다.

일정 둘러보기: 전체 월간 뷰#

새 탭에서 캘린더 열기 명령을 실행하면 전체 탭을 차지하는 월간 그리드가 열립니다. 날짜를 클릭해 선택하면 그날 일정을 볼 수 있고, 날짜에 포커스가 있는 상태에서 방향키로 선택을 이동할 수 있습니다(좌/우는 하루씩, 상/하는 일주일씩). ‹/› 버튼으로 한 달씩 이동하거나, 월/연도 제목을 클릭하면 원하는 연도·월로 바로 이동할 수 있는 선택창이 열립니다(연도를 클릭하면 텍스트 입력창으로 바뀝니다).

캘린더 데이터 새로고침#

일정은 캐시되며, 캐시 유효 시간(설정 → Harang Calendar → 캐시 유효 시간(분), 기본값 30분)이 지나면 자동으로 서버에서 다시 가져옵니다. 월간 뷰에서 아직 캐시되지 않은 범위로 이동하면 그 빈 부분만 필요할 때 가져옵니다. 즉시 새로고침하려면:

  • 명령 팔레트에서 캘린더 새로고침 명령을 실행하거나,

  • 설정에서 모든 캘린더 지금 새로고침 옆의 새로고침을 클릭하세요.