Skip to main content

caldav-calendar

Sync and query CalDAV calendars (iCloud, Google, Fastmail, Nextcloud, etc.) using vdirsyncer + khal. Works on Linux.

소스 정보

저장소
ThinkfleetAI/thinkfleet-engine
최근 소스 활동
2026년 2월 10일 12:42
감지된 SKILL.md 언어
영어
스타
0
포크
0

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
caldav-calendar
description
Sync and query CalDAV calendars (iCloud, Google, Fastmail, Nextcloud, etc.) using vdirsyncer + khal. Works on Linux.
metadata
{"thinkfleet":{"emoji":"📅","os":["linux"],"requires":{"bins":"[Truncated]"},"install":["[Truncated]"]}}
# CalDAV Calendar (vdirsyncer + khal) **vdirsyncer** syncs CalDAV calendars to local `.ics` files. **khal** reads and writes them. ## Sync First Always sync before querying or after making changes: ```bash vdirsyncer sync ``` ## View Events ```bash khal list # Today khal list today 7d # Next 7 days khal list tomorrow # Tomorrow khal list 2026-01-15 2026-01-20 # Date range khal list -a Work today # Specific calendar ``` ## Search ```bash khal search "meeting" khal search "dentist" --format "{start-date} {title}" ``` ## Create Events ```bash khal new 2026-01-15 10:00 11:00 "Meeting title" khal new 2026-01-15 "All day event" khal new tomorrow 14:00 15:30 "Call" -a Work khal new 2026-01-15 10:00 11:00 "With notes" :: Description goes here ``` After creating, sync to push changes: ```bash vdirsyncer sync ``` ## Edit Events (interactive) `khal edit` is interactive — requires a TTY. Use tmux if automating: ```bash khal edit "search term" khal edit -a CalendarName "search term" khal edit --show-past "old event" ``` Menu options: - `s` → edit summary - `d` → edit description - `t` → edit datetime range - `l` → edit location - `D` → delete event - `n` → skip (save changes, next match) - `q` → quit After editing, sync: ```bash vdirsyncer sync ``` ## Delete Events Use `khal edit`, then press `D` to delete. ## Output Formats For scripting: ```bash khal list --format "{start-date} {start-time}-{end-time} {title}" today 7d khal list --format "{uid} | {title} | {calendar}" today ``` Placeholders: `{title}`, `{description}`, `{start}`, `{end}`, `{start-date}`, `{start-time}`, `{end-date}`, `{end-time}`, `{location}`, `{calendar}`, `{uid}` ## Caching khal caches events in `~/.local/share/khal/khal.db`. If data looks stale after syncing: ```bash rm ~/.local/share/khal/khal.db ``` ## Initial Setup ### 1. Configure vdirsyncer (`~/.config/vdirsyncer/config`) Example for iCloud: ```ini [general] status_path = "~/.local/share/vdirsyncer/status/" [pair icloud_calendar] a = "icloud_remote" b = "icloud_local" collections = ["from a", "from b"] conflict_resolution = "a wins" [storage icloud_remote] type = "caldav" url = "https://caldav.icloud.com/" username = "your@icloud.com" password.fetch = ["command", "cat", "~/.config/vdirsyncer/icloud_password"] [storage icloud_local] type = "filesystem" path = "~/.local/share/vdirsyncer/calendars/" fileext = ".ics" ``` Provider URLs: - iCloud: `https://caldav.icloud.com/` - Google: Use `google_calendar` storage type - Fastmail: `https://caldav.fastmail.com/dav/calendars/user/EMAIL/` - Nextcloud: `https://YOUR.CLOUD/remote.php/dav/calendars/USERNAME/` ### 2. Configure khal (`~/.config/khal/config`) ```ini [calendars] [[my_calendars]] path = ~/.local/share/vdirsyncer/calendars/* type = discover [default] default_calendar = Home highlight_event_days = True [locale] timeformat = %H:%M dateformat = %Y-%m-%d ``` ### 3. Discover and sync ```bash vdirsyncer discover # First time only vdirsyncer sync ```
GitHub에서 보기