通过gcalcli操作Google日历:默认仅显示当日议程,支持以语义优先的有界范围议程扫描查询,以及带验证的快速创建/删除——经过优化
快速 gcalcli. 使用 gcalcli 读/ 搜索/ 管理 Google 日历, 并使用最小的工具调用和最小输出是一项面向实际任务的技能,主要用于QQ 快速设置;在使用此技能之前, 请参考 README. md 文件。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
使用 gcalcli 以最少的工具调用和最少的输出读取、搜索、管理 Google 日历。
在使用本技能前,请参考该技能目录下的 README.md 文件,获取详细的配置说明。配置流程包括安装 gcalcli、配置 OAuth2 凭据,以及设置默认日历和时区。
--nocolor、--calendar)必须置于子命令之前。gcalcli --nocolor delete --iamaexpert "query" start end —— 而非 gcalcli --nocolor --iamaexpert delete ...。--iamaexpert(用于 delete)、--noprompt/--allday(用于 add)、--use-legacy-import(用于 import)等。gcalcli 配置(默认日历 / 忽略日历列表);除非用户明确要求“跨所有日历”查询,或当前结果明显错误,否则不得擅自扩大作用域。若用户仅说“在周一/周二/……”而未提供具体日期:
agenda);定位待取消/删除/编辑的事件时:
agenda 而非 search。仅在以下情况将 gcalcli search 作为回退方案使用:
agenda 扫描开销过高(token 消耗大);或--nocolor 以减少格式化噪声及 token 消耗。--tsv。本技能专为个人助理场景设计,用户期望获得快速、低摩擦的日历管理体验。下方确认策略是刻意为之的用户体验设计——详见 README.md 中的原理说明与安全防护机制。
对于取消/删除/编辑类操作,在同时满足以下全部条件时跳过确认步骤:
若存在多个候选事件,或匹配结果不确定:
创建新事件时:
--calendar 参数的 agenda 扫描,尽最大努力在所有非忽略日历中执行冲突检测。add —— 单次性事件的默认方式。支持 --allday、--reminder、--noprompt;但不支持重复规则(RRULE)或空闲/忙碌状态(TRANSP)。import(通过 stdin) —— 仅在需要重复规则(RRULE)或空闲/忙碌状态(TRANSP:TRANSPARENT)时使用。直接通过 stdin 管道传入 ICS 内容;切勿写入临时 .ics 文件(exec sandbox 中工作目录不可靠)。quick —— 除非用户明确要求自然语言添加,否则应避免使用。其确定性较低。--iamaexpert(这是 delete 子命令的参数,必须置于 delete 之后)。该参数是 gcalcli 内置的非交互/脚本化删除标志。agenda 进行验证。--refresh 重试一次。gcalcli --nocolor agenda today tomorrowgcalcli --nocolor agenda today +14dgcalcli --nocolor agenda today +30dgcalcli --nocolor agenda gcalcli --nocolor search "" today +180d gcalcli --nocolor search "" add(单次性事件)gcalcli --nocolor agenda --calendar;冲突检测必须覆盖所有非忽略日历。gcalcli --nocolor --calendar "" add --noprompt --title "" --when "" --duration gcalcli --nocolor --calendar "" add --noprompt --allday --title "" --when "" --reminder "20160 popup" → 提前 14 天(20160 = 14×24×60)--reminder "10080 popup" → 提前 7 天--reminder "0 popup" → 在事件开始时触发w(周)、d(天)、h(小时)、m(分钟);无后缀则默认为分钟。popup(默认)、email、sms。import(通过 stdin,适用于重复规则 / 空闲-忙碌状态)仅当 add 无法满足需求(如需重复事件、TRANSP 等)时才使用。
请直接通过 stdin 管道传入 ICS 内容——切勿写入临时文件。
echo 'BEGIN:VCALENDAR VERSION:2.0 BEGIN:VEVENT DTSTART;VALUE=DATE:20260308 SUMMARY:Event Title RRULE:FREQ=YEARLY TRANSP:TRANSPARENT END:VEVENT END:VCALENDAR' | gcalcli import --calendar ""
DTSTART;VALUE=DATE:YYYYMMDD 表示全天事件;DTSTART:YYYYMMDDTHHmmSS 表示定时事件。RRULE:FREQ=YEARLY —— 每年重复;其他可选值:DAILY、WEEKLY、MONTHLY。TRANSP:TRANSPARENT —— 空闲;TRANSP:OPAQUE —— 忙碌(默认)。import 调用对应一个事件(即一个 VEVENT 块);多个事件需分别执行多次管道导入。--reminder "TIME" 参数设定提醒(将覆盖 ICS 中原有的 VALARM)。import 专属参数(如 --use-legacy-import、--verbose 等)必须置于 import 之后。gcalcli --nocolor agenda (确切日期)gcalcli --nocolor agenda today +14d(工作日)gcalcli --nocolor agenda today +30d(纯语义)gcalcli --nocolor delete --iamaexpert "" gcalcli --nocolor agenda gcalcli --nocolor --refresh agenda gcalcli edit 是交互式命令,无法在非交互式 exec 环境中使用。--iamaexpert)→ 使用更新后的属性创建 → 验证。