caldav-calendar by sundial-org/awesome-openclaw-skills
npx skills add https://github.com/sundial-org/awesome-openclaw-skills --skill caldav-calendarvdirsyncer 将 CalDAV 日历同步到本地的 .ics 文件。khal 读取和写入这些文件。
在查询或进行更改后,务必先同步:
vdirsyncer sync
khal list # 今天
khal list today 7d # 未来 7 天
khal list tomorrow # 明天
khal list 2026-01-15 2026-01-20 # 日期范围
khal list -a Work today # 特定日历
khal search "meeting"
khal search "dentist" --format "{start-date} {title}"
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
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
创建后,同步以推送更改:
vdirsyncer sync
khal edit 是交互式的 —— 需要 TTY。如果自动化操作,请使用 tmux:
khal edit "search term"
khal edit -a CalendarName "search term"
khal edit --show-past "old event"
菜单选项:
s → 编辑摘要d → 编辑描述t → 编辑日期时间范围l → 编辑地点D → 删除事件n → 跳过(保存更改,下一个匹配项)q → 退出编辑后,同步:
vdirsyncer sync
使用 khal edit,然后按 D 删除。
用于脚本编写:
khal list --format "{start-date} {start-time}-{end-time} {title}" today 7d
khal list --format "{uid} | {title} | {calendar}" today
占位符:{title}, {description}, {start}, {end}, {start-date}, {start-time}, {end-date}, {end-time}, {location}, {calendar}, {uid}
khal 将事件缓存在 ~/.local/share/khal/khal.db 中。如果同步后数据看起来过时:
rm ~/.local/share/khal/khal.db
~/.config/vdirsyncer/config)iCloud 示例:
[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"
提供商 URL:
https://caldav.icloud.com/google_calendar 存储类型https://caldav.fastmail.com/dav/calendars/user/EMAIL/https://YOUR.CLOUD/remote.php/dav/calendars/USERNAME/~/.config/khal/config)[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
vdirsyncer discover # 仅首次运行
vdirsyncer sync
每周安装数
74
代码仓库
GitHub 星标数
516
首次出现
2026年2月27日
安全审计
安装于
opencode72
gemini-cli72
github-copilot72
codex72
amp72
cline72
vdirsyncer syncs CalDAV calendars to local .ics files. khal reads and writes them.
Always sync before querying or after making changes:
vdirsyncer sync
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
khal search "meeting"
khal search "dentist" --format "{start-date} {title}"
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:
vdirsyncer sync
khal edit is interactive — requires a TTY. Use tmux if automating:
khal edit "search term"
khal edit -a CalendarName "search term"
khal edit --show-past "old event"
Menu options:
s → edit summaryd → edit descriptiont → edit datetime rangel → edit locationD → delete eventn → skip (save changes, next match)q → quitAfter editing, sync:
vdirsyncer sync
Use khal edit, then press D to delete.
For scripting:
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}
khal caches events in ~/.local/share/khal/khal.db. If data looks stale after syncing:
rm ~/.local/share/khal/khal.db
~/.config/vdirsyncer/config)Example for iCloud:
[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:
https://caldav.icloud.com/google_calendar storage typehttps://caldav.fastmail.com/dav/calendars/user/EMAIL/https://YOUR.CLOUD/remote.php/dav/calendars/USERNAME/~/.config/khal/config)[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
vdirsyncer discover # First time only
vdirsyncer sync
Weekly Installs
74
Repository
GitHub Stars
516
First Seen
Feb 27, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykWarn
Installed on
opencode72
gemini-cli72
github-copilot72
codex72
amp72
cline72
Azure RBAC 权限管理工具:查找最小角色、创建自定义角色与自动化分配
142,000 周安装
平面设计师技能:AI驱动设计流程与自动审查,提升视觉传达效率
398 周安装
高级提示工程模式:最大化LLM性能的5大核心技术与模板系统
402 周安装
隐私政策生成器 - 专业数据隐私合规专家,起草全面合规的隐私政策
410 周安装
App Store Connect 发布流程自动化工具:asc-release-flow 使用指南
412 周安装
asc-id-resolver:App Store Connect ID 解析工具,快速获取应用、构建、版本等ID
405 周安装
钉钉机器人消息桥接工具 - 通过WebSocket连接钉钉与Clawdbot AI智能体
404 周安装