Calendar Reference
This document provides details on using gcalcli to view and manage calendar events.
Installation
INLINECODE1 is a Python CLI for Google Calendar that works with uvx for one-time execution.
IMPORTANT: Always use the custom fork with attachment support:
CODEBLOCK0
This custom version includes attachments in TSV and JSON output, which is essential for accessing meeting notes and other event attachments.
Authentication
First time running gcalcli, it will:
- 1. Open a browser for Google OAuth authentication
- Cache credentials for future use
- Request calendar read permissions
Common Commands
View Upcoming Agenda
Recommended: JSON format with full details (structured data with attachments):
CODEBLOCK1
Alternative: TSV format (tab-separated, parseable):
CODEBLOCK2
Human-readable format (may truncate long descriptions):
CODEBLOCK3
Basic agenda view (minimal details):
CODEBLOCK4
Date Ranges
Important: gcalcli agenda shows events from NOW onwards by default.
When you run gcalcli agenda "today" at 2pm, it shows events from 2pm onwards for today and into the future. Past events from earlier today won't appear.
Specific date range:
CODEBLOCK5
Today only (from current time onwards):
CODEBLOCK6
See earlier today's events (use absolute dates):
CODEBLOCK7
Next week:
CODEBLOCK8
Search Calendar
Search for events by text:
CODEBLOCK9
Access Meeting Attachments and Gemini Notes
IMPORTANT: The custom gcalcli fork includes attachments array in JSON/TSV output.
Each event's attachments array contains objects with:
- -
attachment_title: Title of the attachment (e.g., "Notes by Gemini", "Recording", "Chat") - INLINECODE9 : Direct link to Google Drive file or Google Doc
Common attachment types:
- - "Notes by Gemini": AI-generated meeting notes from Google Meet
- Recording: Meeting recordings (video files)
- Chat: Meeting chat transcripts
- Shared docs: Agendas, planning docs, presentations
Search for events with Gemini notes:
CODEBLOCK10
Filter events by attachment type:
CODEBLOCK11
Export Gemini notes using gcmd:
Single meeting export:
CODEBLOCK12
Bulk export ALL Gemini notes from search results (parallel):
CODEBLOCK13
This efficiently:
- - Searches calendar for meetings matching your query
- Filters to only meetings with Gemini notes
- Exports all notes in parallel (8 at a time) to organized directory
- Uses direct pipeline (no intermediate files)
- Deduplicates URLs with sort -u
Common workflow - Review recent meeting notes:
CODEBLOCK14
Output Formats
--json (JSON Format) RECOMMENDED
- - Structured JSON output with complete event data
- Includes attachments array with title and fileUrl for each attachment
- All event fields preserved
- Easy to parse programmatically with
jq or Python - No truncation of any fields
- Best for accessing meeting notes and attachments
--tsv (Tab-Separated Values)
- - One event per line
- Tab-separated fields:
- id
- start
date, starttime
- end
date, endtime
- html_link
- hangout_link
- conference details
- title
- location
- description (full, no truncation)
- calendar
- email
- attachments (pipe-separated: title|url|title|url...)
- action
- - Ideal for parsing with standard Unix tools (grep, awk, cut)
- No ANSI color codes or formatting
Default Format
- - Human-readable colored output
- Shows time, title, basic details
- May truncate long descriptions with "..." indicator
--details all
- - Includes full descriptions
- Shows all attendees with response status
- Conference/meeting links
- Location information
- Attachments (in human-readable format)
Use Cases
1. Morning Review
Check what's on today's schedule (shows from current time onwards):
CODEBLOCK15
Note: This shows events from NOW onwards. To see the full day including past events, use the specific date:
CODEBLOCK16
2. Weekly Planning
See upcoming week to plan deep work time:
CODEBLOCK17
3. Meeting Preparation
Check details for upcoming meetings:
CODEBLOCK18
4. Find Meeting Links and Notes
Get conference links and meeting notes for a meeting:
CODEBLOCK19
5. Context Before Work
Before working on a feature, check if there are relevant sync meetings:
CODEBLOCK20
Integration with Work Tracking
Calendar-Aware Planning
When planning your day's agenda:
- 1. Check calendar for upcoming related meetings
- Note if meetings happen before important deadlines (e.g., sync 2 days before release)
- Plan work to prepare for discussions
- Identify good time blocks for focused work (between meetings)
Examples
ANSTRAT-1673 Scenario:
- - Oct 8: Sync meeting with Demetrius Lima
- Oct 10: Expected llama-stack release
- Action: Check calendar to confirm timing, prepare talking points
Pre-Meeting Prep:
CODEBLOCK21
Tips
- 1. Always use custom fork with constraint: Use
uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core<2.28.0" for attachment support - Always use
--json flag: Default to JSON format for structured data with attachments - Use
jq for parsing: JSON output works perfectly with jq for filtering and extracting data - Check calendar at session start: Part of standard workflow
- Time-box focused work: Look for gaps between meetings
- Prepare for syncs: Check calendar 1-2 days before important meetings
- Access meeting notes: Use
jq to filter for Gemini notes, then export with gcmd - Search before export: Use
gcalcli search to find relevant meetings, then filter attachments array - Understand time ranges:
"today" shows from NOW onwards, not the full day. Use specific dates for complete day view.
Limitations
- - Read-only (no event creation/modification via CLI documented here)
- Requires OAuth authentication
- May need periodic re-authentication
- Multiple calendars require separate
--calendar flags
Additional Commands
List all calendars:
CODEBLOCK22
View in calendar format (month view):
CODEBLOCK23
Quick view (next 5 events) with JSON:
CODEBLOCK24
Reference
- - Official gcalcli documentation: https://github.com/insanum/gcalcli
- Custom fork with attachment support: https://github.com/shanemcd/gcalcli/tree/attachments-in-tsv-and-json
- Uses Google Calendar API v3
- Supports multiple output formats (JSON, TSV, text)
日历参考
本文档提供使用 gcalcli 查看和管理日历事件的详细信息。
安装
gcalcli 是一个用于 Google 日历的 Python CLI 工具,可与 uvx 配合实现一次性执行。
重要提示:始终使用支持附件的自定义分支:
bash
uvx --from git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json --with google-api-core<2.28.0 gcalcli
此自定义版本在 TSV 和 JSON 输出中包含附件,这对于访问会议记录和其他事件附件至关重要。
身份验证
首次运行 gcalcli 时,它将:
- 1. 打开浏览器进行 Google OAuth 身份验证
- 缓存凭据以供将来使用
- 请求日历读取权限
常用命令
查看即将到来的日程
推荐:JSON 格式,包含完整详细信息(结构化数据及附件):
bash
uvx --from git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json --with google-api-core<2.28.0 gcalcli agenda --calendar smcdonal@redhat.com --details all --json
备选:TSV 格式(制表符分隔,可解析):
bash
uvx --from git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json --with google-api-core<2.28.0 gcalcli agenda --calendar smcdonal@redhat.com --details all --tsv
人类可读格式(可能会截断长描述):
bash
uvx --from git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json --with google-api-core<2.28.0 gcalcli agenda --calendar smcdonal@redhat.com --details all
基本日程视图(最少详细信息):
bash
uvx --from git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json --with google-api-core<2.28.0 gcalcli agenda --calendar smcdonal@redhat.com
日期范围
重要提示:默认情况下,gcalcli agenda 显示从现在开始的事件。
当您在下午 2 点运行 gcalcli agenda today 时,它会显示从下午 2 点开始到今天及未来的事件。今天早些时候的过去事件不会显示。
特定日期范围:
bash
uvx --from git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json --with google-api-core<2.28.0 gcalcli agenda --calendar smcdonal@redhat.com tomorrow 2 weeks
仅今天(从当前时间开始):
bash
uvx --from git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json --with google-api-core<2.28.0 gcalcli agenda --calendar smcdonal@redhat.com today
查看今天早些时候的事件(使用绝对日期):
bash
uvx --from git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json --with google-api-core<2.28.0 gcalcli agenda --calendar smcdonal@redhat.com 2025-10-07 2025-10-07
下周:
bash
uvx --from git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json --with google-api-core<2.28.0 gcalcli agenda --calendar smcdonal@redhat.com monday friday
搜索日历
按文本搜索事件:
bash
uvx --from git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json --with google-api-core<2.28.0 gcalcli search --calendar smcdonal@redhat.com MCP Server
访问会议附件和 Gemini 笔记
重要提示:自定义的 gcalcli 分支在 JSON/TSV 输出中包含 attachments 数组。
每个事件的 attachments 数组包含具有以下属性的对象:
- - attachmenttitle:附件标题(例如,Notes by Gemini、Recording、Chat)
- attachmenturl:指向 Google Drive 文件或 Google 文档的直接链接
常见附件类型:
- - Notes by Gemini:来自 Google Meet 的 AI 生成的会议记录
- Recording:会议录制(视频文件)
- Chat:会议聊天记录
- Shared docs:议程、规划文档、演示文稿
搜索包含 Gemini 笔记的事件:
bash
查找所有包含 Gemini 笔记的事件
uvx --from git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json --with google-api-core<2.28.0 gcalcli search MCP --calendar smcdonal@redhat.com --details all --json | jq .[] | select(.attachments[]? | .attachment
title | contains(Notes by Gemini)) | {title, attachments: [.attachments[] | select(.attachmenttitle | contains(Notes by Gemini))]}
仅获取标题和 Gemini 笔记 URL
uvx --from git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json --with google-api-core<2.28.0 gcalcli search MCP --calendar smcdonal@redhat.com --details all --json | jq -r .[] | select(.attachments[]? | .attachment
title | contains(Notes by Gemini)) | \(.title): \(.attachments[] | select(.attachmenttitle | contains(Notes by Gemini)) | .attachment_url)
按附件类型过滤事件:
bash
包含录制的事件
uvx --from git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json --with google-api-core<2.28.0 gcalcli agenda --calendar smcdonal@redhat.com --json | jq .[] | select(.attachments[]? | .attachment_title | contains(Recording))
包含任何附件的事件
uvx --from git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json --with google-api-core<2.28.0 gcalcli agenda --calendar smcdonal@redhat.com --json | jq .[] | select(.attachments | length > 0)
使用 gcmd 导出 Gemini 笔记:
单个会议导出:
bash
1. 查找包含 Gemini 笔记的会议
GEMINI
URL=$(uvx --from git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json --with google-api-core<2.28.0 gcalcli search MCP proposals --calendar smcdonal@redhat.com --json | jq -r .[0].attachments[] | select(.attachmenttitle | contains(Notes by Gemini)) | .attachment_url | head -1)
2. 使用 gcmd 导出为 markdown
cd /var/home/shanemcd/github/shanemcd/gcmd
uv run gcmd export $GEMINI_URL -o ~/Downloads/
批量导出搜索结果中的所有 Gemini 笔记(并行):
bash
提取 Gemini 笔记 URL 并并行导出(8 个并发进程)
cd /var/home/shanemcd/github/shanemcd/gcmd
uvx --from git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json --with google-api-core<2.28.0 gcalcli search MCP --calendar smcdonal@redhat.com --details all --json 2 months ago today | jq -r .[] | select(.attachments[]? | .attachment
title | contains(Notes by Gemini)) | .attachments[] | select(.attachmenttitle | contains(Notes by Gemini)) | .attachment_url | sort -u | xargs -P 8 -I {} sh -c uv run gcmd export {} -o ~/Downloads/meeting-notes/
这可以高效地:
- - 搜索日历中与查询匹配的会议
- 仅过滤出包含 Gemini 笔记的会议
- 并行导出所有笔记(一次 8 个)到组织好的目录
- 使用直接管道(无中间文件)
-