h8kxrfp68z-lgtm

iCalendar Sync

运维安全v2.4.1
作者:h8kxrfp68z-lgtm更新于 2026-05-11共 40 个版本 · 最新版本发布于 2026-03-06icalendar-sync@clawhub_h8kxrfp68z-lgtm/icalendar-sync
服务器运维DevOps#Sync#Calendar

据 AlphaMoat 统计,截至 2026-09,iCalendar Sync 累计下载 3,682 次、获 3 个星标,在全部 5,078 个 AI 技能中排名第 2,934 位,在「运维安全」分类(264 个)中排名第 185 位。

累计安装
148
累计下载
3,682
星标
3
全站排名
#2,934
全站前 58% · 「运维安全」前 71%
平台累计安装累计下载星标评论
ClawHub ↗1143,5353-
SkillHub ↗1483,6823—

各平台的计数口径不同,统计时间不一致。

这个技能是做什么的

凭据应使用 Apple 专用密码而非主 Apple ID 密码,优先保存在系统钥匙串;如必须写入文件,应限制严格权限。可配置的 CalDAV 目标可能接收凭据,未审计前不要设置该地址。调试 HTTP 输出可能包含敏感信息;创建、更新或删除日历事件前,应核验内容并取得明确确认。 需要 Python 3.9 或更新版本及包依赖;原生桥接仅适用于 macOS。

资料发布于 2026-10-29

可以用来做什么

  • 列出 iCloud 日历并检索事件
  • 草拟事件创建或更新所需字段
  • 在确认后管理重复事件或删除事件

什么时候用

  • 凭据以专用密码方式保存且目标服务器已审核时
  • 事件日期、日历和重复规则已核验时
  • 创建、更新或删除操作能够先经用户明确确认时

示例提示词

以下是根据技能文档生成的示例,不代表实际运行结果。

说明如何安全查看指定日历的事件并草拟一个新事件;不要读取凭据、连接账户或实际创建/修改/删除事件。

月度数据趋势

累计下载3,682
2,2273,0093,7902026-03 · 累计下载 2,3352026-05 · 累计下载 2,8662026-06 · 累计下载 3,0022026-07 · 累计下载 3,2732026-08 · 累计下载 3,3922026-09 · 累计下载 3,68226-0326-09
星标3
2342026-03 · 星标 32026-05 · 星标 32026-06 · 星标 32026-07 · 星标 32026-08 · 星标 32026-09 · 星标 326-0326-09

2026-09 起统计方法调整:同名技能按作者分别统计,并覆盖全部技能。图中虚线为调整前的月份,与之后的数据不直接比较,也不计算跨越调整的增长。

月份累计下载环比星标
2026-093,682—3
2026-083,392+3.6%3
2026-073,273+9.0%3
2026-063,002+4.7%3
2026-052,866—3
2026-032,335—3

SKILL.md 原文

以下是作者发布的原始文件,按纯文本显示,本站未做修改或审核;其中的链接不可点击,命令请核实后再运行。抓取于 2026-10-23。

3.1 KB · ClawHub v2.4.1
---
name: icalendar-sync
description: Secure iCloud Calendar operations for OpenClaw with CalDAV and macOS native bridge providers. Use when tasks require calendar listing, event retrieval, event creation, event updates (including recurring series modes), event deletion, or credential setup via keyring/environment/config file.
---

# iCalendar Sync

Use this skill to perform iCloud calendar CRUD operations from OpenClaw agents.

## 1. Prepare Credentials Securely
展开全部(共 128 行)

Use App-Specific Passwords only (never the primary Apple ID password).

Prefer keyring storage:

```bash
python -m icalendar_sync setup --username [email protected]
```

Use non-interactive setup for automation:

```bash
export ICLOUD_USERNAME="[email protected]"
export ICLOUD_APP_PASSWORD="xxxx-xxxx-xxxx-xxxx"
python -m icalendar_sync setup --non-interactive
```

Use file storage only when keyring is unavailable (headless or GUI-restricted runtime):

```bash
python -m icalendar_sync setup --non-interactive --storage file --config ~/.openclaw/icalendar-sync.yaml
```

## 2. Choose Provider Deliberately

- `--provider auto`: macOS uses native bridge, non-macOS uses CalDAV.
- `--provider caldav`: force direct iCloud CalDAV.
- `--provider macos-native`: force Calendar.app bridge (macOS only).

For CalDAV diagnostics, add:

```bash
--debug-http --user-agent "your-agent/1.0"
```

## 3. Execute Calendar Operations

List calendars:

```bash
python -m icalendar_sync list
```

Get events:

```bash
python -m icalendar_sync get --calendar "Personal" --days 7
```

Create event:

```bash
python -m icalendar_sync create --calendar "Personal" --json '{
  "summary": "Meeting",
  "dtstart": "2026-02-15T14:00:00+03:00",
  "dtend": "2026-02-15T15:00:00+03:00"
}'
```

Update event (simple):

```bash
python -m icalendar_sync update --calendar "Personal" --uid "event-uid" --json '{"summary":"Updated title"}'
```

Update recurring event instance:

```bash
python -m icalendar_sync update \
  --calendar "Work" \
  --uid "series-uid" \
  --recurrence-id "2026-03-01T09:00:00+03:00" \
  --mode single \
  --json '{"summary":"One-off change"}'
```

Modes for recurring updates:

- `single`: update one instance (use `--recurrence-id`)
- `all`: update whole series
- `future`: split series and update this+future (use `--recurrence-id`)

Delete event:

```bash
python -m icalendar_sync delete --calendar "Personal" --uid "event-uid"
```

## 4. Input Contract

For `create`, require at least:

- `summary` (string)
- `dtstart` (ISO datetime)
- `dtend` (ISO datetime, must be later than `dtstart`)

Optional fields:

- `description`
- `location`
- `status`
- `priority` (0-9)
- `alarms`
- `rrule`

## 5. Safety Rules

- Validate calendar names; reject path-like payloads.
- Keep credential material out of logs/output.
- Prefer keyring over file storage.
- If file storage is used, enforce strict file permissions (`0600`).

## 6. Failure Handling

If CalDAV auth/network fails on macOS and provider is `auto`/`caldav`, switch to `macos-native` and retry the same operation.

If JSON payload is supplied as file path, ensure file size stays within safe limits before parsing.

「运维安全」分类下的热门技能

数据月份:2026-09 · 下载/星标/安装数聚合自公开技能注册库(ClawHub、SkillHub),按月更新。口径说明见数据方法。