Google Calendar (via gogcli)
2026-03-28
新闻来源:网淘吧
围观:11
电脑广告
手机广告
gog-calendar
使用gog(gogcli) 处理 Google Calendar:日程安排(事件列表)和跨日历的关键词搜索。
输出规则(令牌数量 vs 可靠性)
gogcli 的 stdout 输出应保持可解析性;优先使用--plain/--json并将提示信息输出到 stderr。oai_citation:0‡GitHub
- 默认使用
--plain用于只需总结的只读列表(节省令牌开销):- 日程列表(今日 / 未来几天 / 日期范围)
- 日历列表
- 仅在需要结构时使用
--json:- 跨日历聚合结果(跨日历关键词搜索)
- 去重 / 排序 / 提取 ID 以供后续调用
- 任何需要精确字段的写入工作流
- 在自动化运行时,添加
--no-input(若需要提示输入,则直接失败)。oai_citation:1‡GitHub
日历排除(后处理)
用户可以明确将某些日历排除在搜索/日程之外(例如,“国家假日”)。
在回答时,你必须:
- 进行广泛查询(例如,
events --all或在搜索时遍历所有日历), - 然后在后处理中过滤掉被排除的日历。
如何确定要排除的日历:
- 首先,检查用户的偏好/记忆,看是否有明确的“排除日历”列表。
- 如果没有提供,则应用一个保守的默认过滤器,以排除明显的干扰日历:
- 名称/摘要包含以下内容的日历:
holiday、holidays的日历,国家法定节假日(及本地等效节假日)
- 名称/摘要包含以下内容的日历:
- 除非明确排除,否则切勿过滤用户自有日历。
过滤规则:
- 如果拥有日历元数据(来自
gog calendar calendars),则按日历名称/摘要进行过滤。 - 如果仅有事件输出,则通过将事件的calendarId与从日历列表解析出的排除日历ID进行匹配来过滤。
如果过滤显著改变了答案,请务必简要提及:
- “(已过滤:国家法定节假日)”
日程安排(始终先跨日历查询,再过滤)
对于“我的日历上今天/明天/本周/X至Y期间有什么安排”这类查询:
- 必须查询所有日历:
gog calendar events --all --from <日期或ISO格式> --to <日期或ISO格式> --plain
- 然后应用日历排除规则(如上所述)。
- 除非已为正确的时间窗口运行命令并应用了过滤,否则不得回答“没有安排”。
示例:
- 今日:
gog calendar events --all --from 2026-02-04 --to 2026-02-05 --plain - 未来7天:
gog calendar events --all --from 2026-02-04 --to 2026-02-11 --plain
输出格式:
- 按开始时间排序
- 按天分组
- 显示:时间范围、摘要、地点(仅在有助于识别时显示日历名称)
跨日历关键词搜索(尽力而为,先聚合再过滤)
日历事件查询的范围限定于calendarId(API为/calendars/{calendarId}/events),因此关键词搜索必须遍历日历并聚合结果。oai_citation:2‡Google for Developers
默认时间窗口:
- 如果用户未指定时间范围:从今天起未来6个月(包含首尾)
- 如果用户指定了日期/范围:则使用该指定范围
工作流程(请勿跳过):
- 列出日历(需要ID和名称以便筛选):
gog calendar calendars --json
- 根据排除规则构建排除的日历ID集合。
- 对于每一个未被排除的
日历ID,进行搜索(需要JSON格式以便合并/去重):gog calendar search "<查询词>" --calendar <日历ID> --from <起始时间> --to <结束时间> --max 50 --json --no-input
- 聚合所有日历中的匹配结果(除非用户要求,否则不要在找到第一个匹配项时停止)。
- 通过
(日历ID, 事件ID)进行去重,并按开始时间排序。 - 报告结果,并明确提及搜索的时间窗口(以及应用的所有筛选条件)。
如果在默认时间窗口内未找到任何结果:
- 请说:“在接下来的6个月内(<起始时间>→<结束时间>)未找到任何事件。是否希望我扩大搜索范围(例如,12个月)或在特定日期内搜索?”
若用户确信其存在时的备用方案:
- 询问/推算大致日期并列出邻近事件(随后筛选):
gog calendar events --all --from <date-7d> --to <date+7d> --plain
- 随后在本地通过标题词元进行匹配(转为小写 + 词元重叠度比对)
写入操作(创建/更新/删除/回复参与状态)
在执行任何写入操作前:
- 总结确切意图(日历名称、标题、起止时间、时区、参与者、地点)
- 请求明确确认“是”
- 随后执行命令
文章底部电脑广告
手机广告位-内容正文底部


微信扫一扫,打赏作者吧~