Gcalcli

📅 终端操控 Google 日历,一键提取 AI 会议笔记

命令行管理 Google 日历,支持 JSON/TSV 结构化输出,可从会议附件提取 Gemini AI 笔记,适合开发者自动化工作流集成。

收藏
10.6k
安装
3.6k
版本
0.1.0
CLS 安全性认证2026-06-23
点击查看完整报告 >

使用说明

核心用法

gcalcli 是一个基于 Python 的 Google 日历 CLI 工具,通过 uvx 实现零安装即用。核心功能包括:

  • 日程查看agenda 命令支持时间范围查询(today/tomorrow/具体日期),默认从当前时间向后展示
  • 事件搜索search 按关键词过滤历史及未来事件
  • 结构化输出:JSON 格式完整保留事件元数据,TSV 适合 Unix 工具链处理

关键特性:文档强调使用 Shane McDonald 的定制分支(attachments-in-tsv-and-json),该分支在 JSON/TSV 输出中嵌入 attachments 数组,可直接获取 Google Meet 的 Gemini AI 会议纪要、录制文件和聊天日志。

显著优点

1. 附件原生支持:通过定制分支直接提取会议附件 URL,配合 jq 可批量筛选 Gemini 笔记
2. 零依赖执行uvx 单次运行模式避免 Python 环境污染

3. 管道友好:JSON 输出与 jq 深度整合,支持复杂过滤和批量导出工作流

4. OAuth 缓存:首次认证后自动缓存凭据

局限性与风险

  • 只读限制:文档未涵盖事件创建/修改功能,纯查询工具
  • 时间语义陷阱"today" 从当前时刻起算,非整日视图;需用绝对日期获取全天事件
  • 分支依赖:核心功能(附件)依赖非官方 fork,长期维护存在不确定性
  • 认证漂移:Google OAuth 可能需周期性重新授权

适合人群

  • 习惯终端工作流的开发者/SRE
  • 需要批量归档会议 AI 笔记的知识管理者
  • 构建日历自动化 pipeline 的效率工具用户

常规风险

| 等级 | 描述 |
|------|------|
| 中 | OAuth 令牌本地存储,共享环境需配置隔离 |
| 低 | Google API 配额限制,大规模查询可能触发限流 |
| 低 | 定制分支代码审查责任由用户承担 |

安全解读

核心功能

gcalcli 是一个基于 Python 的 Google Calendar 命令行接口工具,通过 uvx 实现零安装即执行。该 Skill 提供完整的使用指南,涵盖日历查询、事件搜索、会议附件提取等核心工作流。

显著优点

1. 结构化数据输出:支持 JSON 和 TSV 两种机器可解析格式,配合 jq 可灵活过滤事件、附件、参会人等信息,优于官方 Web 界面的交互效率
2. 会议附件提取:自定义 fork 版本支持导出 Gemini AI 会议笔记、录制文件、聊天记录等附件链接,可与 gcmd 工具链结合实现批量笔记导出

3. 灵活的时间查询:支持自然语言日期("today", "monday", "2 weeks")与绝对日期范围,适合脚本化日程回顾与周规划

4. 零依赖执行:通过 uvx --from git+... 直接从 GitHub fork 安装,无需本地 Python 环境配置

潜在局限

  • 只读操作:文档未涵盖事件创建/修改,仅限于查询和导出
  • OAuth 依赖:首次使用需浏览器授权,凭证缓存可能过期需重新认证
  • fork 维护风险:核心功能依赖个人开发者(shanemcd)的附件增强分支,上游同步可能延迟
  • 版本约束敏感:明确依赖 google-api-core<2.28.0,未来 Google API 变更可能破坏兼容性

适合人群

  • 开发者与工程师:需脚本化查询日历、提取会议链接与笔记
  • 远程工作团队:频繁使用 Google Meet 并依赖 Gemini 自动笔记
  • CLI 重度用户:偏好命令行效率而非 Web 界面操作

常规风险

  • 需授予 Google Calendar 读取权限,涉及 OAuth 令牌管理
  • 日历数据包含敏感会议信息,JSON/TSV 输出文件需妥善保管
  • 批量导出会议笔记时注意 Google Drive 访问频率限制

使用示例

# 今日议程 JSON 输出
uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core<2.28.0" gcalcli agenda --calendar user@example.com --json "today"

# 提取含 Gemini 笔记的会议
... | jq '.[] | select(.attachments[]? | .attachment_title | contains("Notes by Gemini"))'

Gcalcli 内容

手动下载zip · 3.8 kB
SKILL.mdtext/markdown
请选择文件