openclaw 网盘下载
OpenClaw

技能详情(站内镜像,无评论)

首页 > 技能库 > Caldav Calendar

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

通信与消息

作者:Asleep @asleep123

许可证:MIT-0

MIT-0 ·免费使用、修改和重新分发。无需归因。

版本:v1.0.1

统计:⭐ 183 · 21.5k · 202 current installs · 205 all-time installs

183

安装量(当前) 205

🛡 VirusTotal :良性 · OpenClaw :良性

Package:asleep123/caldav-calendar

安全扫描(ClawHub)

  • VirusTotal :良性
  • OpenClaw :良性

OpenClaw 评估

The skill's instructions, files it touches, and optional install suggestion align with its stated purpose (syncing/querying CalDAV via vdirsyncer+khal); it does require access to local calendar/config files and credentials which is expected and should be handled carefully.

目的

Name/description match the instructions: the SKILL.md tells the agent to use vdirsyncer and khal to sync and query CalDAV calendars. The referenced binaries, config paths (~/.config/vdirsyncer/, ~/.config/khal/), and data paths (~/.local/share/vdirsyncer/, ~/.local/share/khal/) are consistent with that purpose.

说明范围

Instructions are focused on calendar sync/query workflows and explicitly tell the agent to run vdirsyncer/khal commands and to read/write configuration and local calendar files. This is necessary for functionality, but the skill does instruct access to sensitive local files (credential file example, config and cache removal). There is no instruction to read unrelated system files or to transmit data to unexpected external endpoints.

安装机制

The skill is instruction-only (no install spec) which keeps risk low. The SKILL.md metadata includes an apt install suggestion for vdirsyncer and khal; this is a benign, expected package suggestion. There is no remote download or archive-extraction behavior.

证书

The skill declares no required environment variables or credentials, which is consistent. However, the examples instruct storing/reading calendar passwords from a local file (password.fetch = ['command', 'cat', '~/.config/vdirsyncer/icloud_password']). That is appropriate for the task but is sensitive: it may expose credentials if the file is world-readable or if command invocation leaks arguments to process listings. Consider using secure sto…

持久

The skill does not request always:true and does not modify other skills or global settings. It expects to read/write only its own config and data under the user's home (~/.config, ~/.local/share), which is standard for a calendar client.

综合结论

This skill appears to do exactly what it says: automate vdirsyncer and khal to sync/query CalDAV calendars. Before installing/using it, ensure you trust the agent to run shell commands and access files in your home directory. Pay attention to how you store calendar credentials — the example uses a local file read via `cat`, which can expose secrets if file permissions or process listings are not secure. Prefer OS keyring or properly permission…

安装(复制给龙虾 AI)

将下方整段复制到龙虾中文库对话中,由龙虾按 SKILL.md 完成安装。

请把本段交给龙虾中文库(龙虾 AI)执行:为本机安装 OpenClaw 技能「Caldav Calendar」。简介:Sync and query CalDAV calendars (iCloud, Google, Fastmail, Nextcloud, etc.) usi…。
请 fetch 以下地址读取 SKILL.md 并按文档完成安装:https://raw.githubusercontent.com/openclaw/skills/refs/heads/main/skills/asleep123/caldav-calendar/SKILL.md
(来源:yingzhi8.cn 技能库)

SKILL.md

打开原始 SKILL.md(GitHub raw)

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