网淘吧来吧,欢迎您!

返回首页 微信
微信
手机版
手机版

Google Calendar (via gogcli)

2026-03-28 新闻来源:网淘吧 围观:13
电脑广告
手机广告

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

日历排除(后处理)

用户可以明确将某些日历排除在搜索/日程之外(例如,“国家假日”)。
在回答时,你必须:

  1. 进行广泛查询(例如,events --all或在搜索时遍历所有日历),
  2. 然后在后处理中过滤掉被排除的日历

如何确定要排除的日历:

  • 首先,检查用户的偏好/记忆,看是否有明确的“排除日历”列表。
  • 如果没有提供,则应用一个保守的默认过滤器,以排除明显的干扰日历:
    • 名称/摘要包含以下内容的日历:holidayholidays的日历,国家法定节假日(及本地等效节假日)
  • 除非明确排除,否则切勿过滤用户自有日历。

过滤规则:

  • 如果拥有日历元数据(来自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个月(包含首尾)
  • 如果用户指定了日期/范围:则使用该指定范围

工作流程(请勿跳过):

  1. 列出日历(需要ID和名称以便筛选):
    • gog calendar calendars --json
  2. 根据排除规则构建排除的日历ID集合。
  3. 对于每一个未被排除的日历ID,进行搜索(需要JSON格式以便合并/去重):
    • gog calendar search "<查询词>" --calendar <日历ID> --from <起始时间> --to <结束时间> --max 50 --json --no-input
  4. 聚合所有日历中的匹配结果(除非用户要求,否则不要在找到第一个匹配项时停止)。
  5. 通过(日历ID, 事件ID)进行去重,并按开始时间排序。
  6. 报告结果,并明确提及搜索的时间窗口(以及应用的所有筛选条件)。

如果在默认时间窗口内未找到任何结果:

  • 请说:“在接下来的6个月内(<起始时间><结束时间>)未找到任何事件。是否希望我扩大搜索范围(例如,12个月)或在特定日期内搜索?”

若用户确信其存在时的备用方案:

  • 询问/推算大致日期并列出邻近事件(随后筛选):
    • gog calendar events --all --from <date-7d> --to <date+7d> --plain
  • 随后在本地通过标题词元进行匹配(转为小写 + 词元重叠度比对)

写入操作(创建/更新/删除/回复参与状态)

在执行任何写入操作前:

  • 总结确切意图(日历名称、标题、起止时间、时区、参与者、地点)
  • 请求明确确认“是”
  • 随后执行命令
免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
文章底部电脑广告
手机广告位-内容正文底部
上一篇:Curl Http 下一篇:小红书

相关文章

您是本站第292476名访客 今日有288篇新文章/评论