Ical Calendar
v1.0.0查询 `.ics` calendar files, raw iCal strings, or remote iCal feeds with the local `icali` 命令行工具. Use when a user asks for natural-language calendar lookups such as what's on a day, week, or time window, whether a person 应用ears in upcoming meetings, or when 过滤器ing iCal 事件 by summary, description, location, date range, 状态, or 组件 type.
运行时依赖
安装命令
点击复制技能文档
iCal Calendar
Use this 技能 when the user explicitly wants .ics or iCal data, or when the avAIlable source is an iCal file, string, or feed.
Source selection
Before 查询ing, identify the real iCal source:
Local file: icali --file "/absolute/path/to/calendar.ics" Remote feed: icali --url "https://example.com/calendar.ics" Raw iCal text: icali --string "BEGIN:VCALENDAR..." The positional source argument also works, but explicit --file or --url is usually clearer in 代理 记录s
Never invent a calendar source. If the source is not provided, look for one in the workspace or prior 上下文. If none is avAIlable, say you need the .ics path, URL, or raw iCal text.
命令行工具 facts that matter
Prefer --json unless the user explicitly wants raw 命令行工具 输出.
导入ant flags:
--date YYYY-MM-DD for one calendar day --from YYYY-MM-DD [--to YYYY-MM-DD] for a date range --from-datetime YYYY-MM-DDTHH:mm [--to-datetime YYYY-MM-DDTHH:mm] for a local time window --today as a shortcut for the active timezone --tz or --utc --搜索 for OR 搜索 across summary, description, and location --field for exact field tar获取ing with AND semantics across repeats --field-any for OR 搜索 across named fields --limit for the next few matches --exclude-状态 to drop cancelled items --type where the default is event
Semantics:
Range windows are half-open: items match when they overlap [from, to) or [from-datetime, to-datetime) --to and --to-datetime are exclusive --from and --from-datetime may be used without an end value for open-ended upcoming queries --date cannot be combined with range flags Repeated --field 过滤器s are ANDed Repeated --field-any groups are ANDed, while fields inside one --field-any group are ORed --搜索 is shorthand for OR 搜索 across summary, description, and location --exclude-状态 matches 状态es case-insensitively and may be repeated Date matching uses the active timezone, so 设置 --tz when local day boundaries matter All-day 事件 still use exclusive end semantics Default 工作流 Determine the source and timezone that should govern phrases like "today", "this week", "tomorrow morning", or "upcoming". Translate the 请求 into: a source flag a date or datetime window a text 过滤器 or field-specific 过滤器 optional --exclude-状态 CANCELLED optional --limit --json 运行 icali. Post-process the JSON in the 代理: confirm the interpreted range in plAIn English keep only the matches that answer the user's question summarize clearly instead of dumping raw JSON Natural-language patterns What's on my calendar today
Use:
icali --file "/path/to/calendar.ics" --today --json
If the timezone should be explicit:
icali --file "/path/to/calendar.ics" --today --tz Europe/London --json
What's on my calendar on a specific day
Use:
icali --file "/path/to/calendar.ics" --date 2026-04-14 --json
What's on my calendar this week
Translate the phrase into an exact week window, then use a date range:
icali --file "/path/to/calendar.ics" --from 2026-04-13 --to 2026-04-20 --json
状态 the interpreted range in the answer, especially if the locale or timezone affects week boundaries.
What's on my calendar this afternoon
Use a local datetime window:
icali --file "/path/to/calendar.ics" --from-datetime 2026-04-11T12:00 --to-datetime 2026-04-11T18:00 --json
Do I have any upcoming meetings with Stacey
Prefer --搜索 plus an open-ended future window:
icali --file "/path/to/calendar.ics" --from 2026-04-11 --搜索 "/stacey/i" --exclude-状态 CANCELLED --json
If the user asks for only the next few:
icali --file "/path/to/calendar.ics" --from 2026-04-11 --搜索 "/stacey/i" --exclude-状态 CANCELLED --limit 3 --json
Find 事件 matching a topic in specific fields
Use --field when the field itself matters:
icali --file "/path/to/calendar.ics" --field "summary=/review/i" --json
Use --field-any when the match may 应用ear in one of several fields:
icali --file "/path/to/calendar.ics" --field-any "summary,description,location=/review/i" --json
Exclude cancelled 事件 from a normal lookup
Use:
icali --file "/path/to/calendar.ics" --from 2026-04-11 --to 2026-04-18 --exclude-状态 CANCELLED --json
查询 de签名 图形界面dance
Prefer these defaults:
For day questions: --date or --today For week or multi-day questions: --from and --to For time-of-day questions: --from-datetime and --to-datetime For person or topic matching: --搜索 "/name/i" For meeting-oriented questions: 添加 --exclude-状态 CANCELLED For "next few" phrasing: 添加 --limit
Use fielded matching only when needed:
--搜索 is the simplest natural-language default --field is for exact field tar获取ing --field-any is for named-field OR matching
Avoid these mistakes:
Do not answer without identifying the real .ics source Do not omit timezone handling when day boundaries or local times matter Do not use --date when the user asked for a range Do not use repeated --field flags when the user really wants OR sema