跳到主内容
智客 ZICQ

技能库 智客分类:协作效率 caldav-calendar OpenClaw

Caldav Calendar

使用 vdirsyncer + khal来同步并查询 CalDAV 日历(iCloud, Google, Fastmail, Nextcloud等). 工作在Linux.

官方网址:ClawHub

技能介绍

先看中文介绍;官方 description 原文单独保留,不改写 SKILL.md。

做什么

使用 vdirsyncer + khal来同步并查询 CalDAV 日历(iCloud, Google, Fastmail, Nextcloud等). 工作在Linux.

何时用

官方 description 未单独写出 Use when。按规范,代理会在用户任务与这段 description 的关键词匹配时激活本技能。

代理如何加载

按 Agent Skills 渐进披露:启动时只加载 name 与 description(约 100 token);任务匹配后才读入整份 SKILL.md 正文;scripts/、references/、assets/ 仅在需要时再读。 本文件正文结构:CalDAV Calendar (vdirsyncer + khal)、Sync First、View Events、Search、Create Events、Edit Events (interactive)。

文件分析

文件分析:这是一份仅含 SKILL.md 的指令型技能,代理激活后整份正文进入上下文。

官方 description(原文)

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

CalDAV Calendar (vdirsyncer + khal)Sync FirstView EventsSearchCreate EventsEdit Events (interactive)Delete EventsOutput FormatsCachingInitial Setup1. Configure vdirsyncer (`~/.config/vdirsyncer/config`)2. Configure khal (`~/.config/khal/config`)

来源分类:ClawHub Calendar

SKILL.md 与 Agent 调用

官方规范 ↗
name
caldav-calendar
description
Sync and query CalDAV calendars (iCloud, Google, Fastmail, Nextcloud, etc.) using vdirsyncer + khal. Works on Linux.
  1. 发现技能客户端向 Agent 提供名称与描述目录。
  2. 匹配与调用用户指定或任务匹配后,载入 SKILL.md 指令。
  3. 按需加载按步骤读取参考文档、使用脚本与素材。

具体调用语法与可用工具以目标 Agent 客户端为准。 查看调用机制说明 ↗

安装这个技能

Skills CLI ↗

先选择目标 Agent 和安装范围,保留技能包的附属文件,安装后检查客户端能否发现该技能。

交给 Agent 安装

复制安装指令给支持 Agent Skills 的代理,确认其中的目标目录与客户端匹配。

把 Agent Skill「caldav-calendar」安装到我的项目:SKILL.md 原文与官方 description 见 https://zicq.com/zh/skills/skl-87dd04330e8c5de8-Caldav-Calendar.html
请存为 .cursor/skills/caldav-calendar/SKILL.md 或 .claude/skills/caldav-calendar/SKILL.md,frontmatter 的 name 与 description 保持原样,不要改写。

当前没有明确的 GitHub 技能包地址,请按来源页面的安装器说明操作。

ClawHub ↗

阅读排版

name: caldav-calendar description: Sync and query CalDAV calendars (iCloud, Google, Fastmail, Nextcloud, etc.) using vdirsyncer + khal. Works on Linux. metadata: {"clawdbot":{"emoji":"📅","os":["linux"],"requires":{"bins":["vdirsyncer","khal"]},"install":[{"id":"apt","kind":"apt","packages":["vdirsyncer","khal"],"bins":["vdirsyncer","khal"],"label":"Install vdirsyncer + khal via apt"}]}}

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:

vdirsyncer sync

View Events

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

khal search "meeting"
khal search "dentist" --format "{start-date} {title}"

Create Events

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

Edit Events (interactive)

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 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:

vdirsyncer sync

Delete Events

Use khal edit, then press D to delete.

Output Formats

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}

Caching

khal caches events in ~/.local/share/khal/khal.db. If data looks stale after syncing:

rm ~/.local/share/khal/khal.db

Initial Setup

1. Configure vdirsyncer (~/.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 = "[email protected]"
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)

[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

vdirsyncer discover   # First time only
vdirsyncer sync

相关技能

协作效率

Gog

Google 工作空间 CLI 用于 Gmail, Calendar, Drive, 联系人, 工作表和文档 .

协作效率

Notion

用于创建和管理页面、数据库和块的逗号 API.

协作效率

Slack

需要通过懒惰工具控制 Clawdbot 的 Slack 时使用,包括在 Slack 频道或 DMs 中对消息作出反应或发夹/取消项目.

协作效率

Imap Smtp Email

通过IMAP/SMTP读取并发送电子邮件. 检查新/未读信件,获取内容,搜索信箱,标记为已读/未读,并发送带有附件的邮件. 支持多个账户。 与任何IMAP/SMTP服务器合作,包括Gmail,Outlook,163.com,vip.163.com,126.com,vip.126.…