使用 EventKit 通过命令行管理 macOS 日历事件,适用于无需 AppleScript 对话框或 UI 提示即可创建、列出或查看日历事件的场景。支持全天事件、多日事件和定时事件,兼容 iCloud、本地和 CalDAV 日历。
使用 EventKit 通过命令行管理 macOS 日历事件,适用于无需 AppleScript 对话框或 UI 提示即可创建、列出或查看日历事件的场景。支持全天事件、多日事件和定时事件,兼容 iCloud、本地和 CalDAV 日历。
Command-line tool for creating listing and viewing macOS Calendar events via EventKit without UI prompts, supporting iCloud CalDAV and local calendars
Manage macOS Calendar events from the command line using EventKit. Use when creating, listing, or viewing calendar events on macOS without AppleScript dialogs or UI prompts. Supports all-day events, multi-day events, and timed events. Works with iCloud, local, and CalDAV calendars.
直接复制以下提示词,发送给你的 AI 助手即可完成安装。
---
name: calmly
description: Manage macOS Calendar events from the command line using EventKit. Use when creating, listing, or viewing calendar events on macOS without AppleScript dialogs or UI prompts. Supports all-day events, multi-day events, and timed events. Works with iCloud, local, and CalDAV calendars.
metadata:
openclaw:
emoji: "📅"
os: ["darwin"]
requires:
bins: ["calmly"]
install:
- id: brew
kind: brew
formula: halbotley/tap/calmly
bins: ["calmly"]
label: "Install calmly (brew)"
---
# calmly
A calm CLI for macOS Calendar. Manage iCloud and local calendars without dialogs, prompts, or UI interruptions.
## Why calmly?
- **AppleScript hangs** — Calendar scripting often freezes waiting for permissions
- **ICS imports pop dialogs** — Can't automate without user interaction
- **icalBuddy is read-only** — Can't create events
calmly uses EventKit directly, so it works silently.
## Installation
```bash
brew tap halbotley/tap
brew install calmly
```
First run prompts for Calendar access (System Settings → Privacy → Calendars). One-time only.
## Commands
### List calendars
```bash
calmly list
```
### View upcoming events
```bash
calmly events Work # Next 30 days
calmly events Family 14 # Next 14 days
```
### Create all-day event
```bash
calmly add Work "Day Off" 2025-03-15
```
### Create multi-day event
```bash
calmly add Family "Vacation" 2025-07-01 2025-07-14
```
### Create timed event
```bash
calmly addtimed Work "Meeting" 2025-03-15 09:00 10:30
calmly addtimed Kids "Swim Practice" 2025-02-03 07:00 08:30
```
## Batch Event Creation
For recurring events, loop in bash:
```bash
# Morning practice every Tuesday/Thursday for 6 weeks
for d in 2025-02-04 2025-02-06 2025-02-11 2025-02-13; do
calmly addtimed Kids "🏊 AM Practice" "$d" 07:00 08:30
done
```
## Date Verification
Before creating events, verify day/date alignment:
```bash
for d in 3 4 5 6 7; do date -j -f "%Y-%m-%d" "2025-02-0$d" "+%A %B %d"; done
```
## Notes
- Dates use `YYYY-MM-DD` format
- Times use 24-hour `HH:MM` format
- Calendar names are case-insensitive
- Events sync to iCloud automatically
- No delete command yet — delete via Calendar app or iCloud web
文件内容直接读取自技能仓库,仅供安装前审阅;以实际下载的压缩包为准。