← 返回 Skills 市场
gargravish

Gcalcli

作者 gargravish · GitHub ↗ · v0.1.0
cross-platform ⚠ suspicious
3539
总下载
0
收藏
13
当前安装
1
版本数
在 OpenClaw 中安装
/install gcalcli
功能描述
Interact with Google Calendar via gcalcli
使用说明 (SKILL.md)

Calendar Reference

This document provides details on using gcalcli to view and manage calendar events.

Installation

gcalcli is a Python CLI for Google Calendar that works with uvx for one-time execution.

IMPORTANT: Always use the custom fork with attachment support:

uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli

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
  2. Cache credentials for future use
  3. Request calendar read permissions

Common Commands

View Upcoming Agenda

Recommended: JSON format with full details (structured data with attachments):

uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli agenda --calendar [email protected] --details all --json

Alternative: TSV format (tab-separated, parseable):

uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli agenda --calendar [email protected] --details all --tsv

Human-readable format (may truncate long descriptions):

uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli agenda --calendar [email protected] --details all

Basic agenda view (minimal details):

uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli agenda --calendar [email protected]

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:

uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli agenda --calendar [email protected] "tomorrow" "2 weeks"

Today only (from current time onwards):

uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli agenda --calendar [email protected] "today"

See earlier today's events (use absolute dates):

uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli agenda --calendar [email protected] "2025-10-07" "2025-10-07"

Next week:

uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli agenda --calendar [email protected] "monday" "friday"

Search Calendar

Search for events by text:

uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli search --calendar [email protected] "MCP Server"

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")
  • attachment_url: 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:

# Find all events with Gemini notes
uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli search "MCP" --calendar [email protected] --details all --json | jq '.[] | select(.attachments[]? | .attachment_title | contains("Notes by Gemini")) | {title, attachments: [.attachments[] | select(.attachment_title | contains("Notes by Gemini"))]}'

# Get just the titles and Gemini note URLs
uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli search "MCP" --calendar [email protected] --details all --json | jq -r '.[] | select(.attachments[]? | .attachment_title | contains("Notes by Gemini")) | "\(.title): \(.attachments[] | select(.attachment_title | contains("Notes by Gemini")) | .attachment_url)"'

Filter events by attachment type:

# Events with recordings
uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli agenda --calendar [email protected] --json | jq '.[] | select(.attachments[]? | .attachment_title | contains("Recording"))'

# Events with any attachments
uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli agenda --calendar [email protected] --json | jq '.[] | select(.attachments | length > 0)'

Export Gemini notes using gcmd:

Single meeting export:

# 1. Find meeting with Gemini notes
GEMINI_URL=$(uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli search "MCP proposals" --calendar [email protected] --json | jq -r '.[0].attachments[] | select(.attachment_title | contains("Notes by Gemini")) | .attachment_url' | head -1)

# 2. Export to markdown using gcmd
cd /var/home/shanemcd/github/shanemcd/gcmd
uv run gcmd export "$GEMINI_URL" -o ~/Downloads/

Bulk export ALL Gemini notes from search results (parallel):

# Extract Gemini note URLs and export in parallel (8 concurrent processes)
cd /var/home/shanemcd/github/shanemcd/gcmd
uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli search "MCP" --calendar [email protected] --details all --json "2 months ago" "today" | jq -r '.[] | select(.attachments[]? | .attachment_title | contains("Notes by Gemini")) | .attachments[] | select(.attachment_title | contains("Notes by Gemini")) | .attachment_url' | sort -u | xargs -P 8 -I {} sh -c 'uv run gcmd export "{}" -o ~/Downloads/meeting-notes/'

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:

# Search for recent meetings on a topic
uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli search "ANSTRAT-1567" --calendar [email protected] --json

# Filter to show only events with Gemini notes
uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli search "ANSTRAT-1567" --calendar [email protected] --json | jq '.[] | select(.attachments[]? | .attachment_title | contains("Notes by Gemini")) | {title, date: .s, gemini_notes: [.attachments[] | select(.attachment_title | contains("Notes by Gemini")) | .attachment_url]}'

# Export the most recent Gemini notes for review
# (extract URL, then use gcmd export)

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, start_time
    • end_date, end_time
    • 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):

uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli agenda --calendar [email protected] --json "today"

Note: This shows events from NOW onwards. To see the full day including past events, use the specific date:

uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli agenda --calendar [email protected] --json "2025-10-07" "2025-10-07"

2. Weekly Planning

See upcoming week to plan deep work time:

uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli agenda --calendar [email protected] --json "monday" "friday"

3. Meeting Preparation

Check details for upcoming meetings:

uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli agenda --calendar [email protected] --details all --json "today" "tomorrow"

4. Find Meeting Links and Notes

Get conference links and meeting notes for a meeting:

# Using JSON (recommended for accessing attachments)
uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli agenda --calendar [email protected] --details all --json | jq '.[] | select(.title | contains("Meeting Name"))'

# Using TSV
uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli agenda --calendar [email protected] --details all --tsv | grep "Meeting Name"

5. Context Before Work

Before working on a feature, check if there are relevant sync meetings:

uvx gcalcli search --calendar [email protected] "ANSTRAT-1673"

Integration with Work Tracking

Calendar-Aware Planning

When planning your day's agenda:

  1. Check calendar for upcoming related meetings
  2. Note if meetings happen before important deadlines (e.g., sync 2 days before release)
  3. Plan work to prepare for discussions
  4. 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:

# See what's coming up this week with attachments
uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli agenda --calendar [email protected] --json "monday" "friday"

# Check specific meeting details
uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli search --calendar [email protected] --json "ANSTRAT"

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\x3C2.28.0" for attachment support
  2. Always use --json flag: Default to JSON format for structured data with attachments
  3. Use jq for parsing: JSON output works perfectly with jq for filtering and extracting data
  4. Check calendar at session start: Part of standard workflow
  5. Time-box focused work: Look for gaps between meetings
  6. Prepare for syncs: Check calendar 1-2 days before important meetings
  7. Access meeting notes: Use jq to filter for Gemini notes, then export with gcmd
  8. Search before export: Use gcalcli search to find relevant meetings, then filter attachments array
  9. 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:

uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli list

View in calendar format (month view):

uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli calm

Quick view (next 5 events) with JSON:

uvx --from "git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json" --with "google-api-core\x3C2.28.0" gcalcli agenda --calendar [email protected] --json | jq '.[0:5]'

Reference

安全使用建议
This skill appears to be an instructions-only wrapper around a custom gcalcli fork, but the SKILL.md contains developer-specific examples and asks you to install code from a third-party GitHub repo. Before installing or running anything: 1) Inspect the GitHub fork (shanemcd/gcalcli@attachments-in-tsv-and-json) yourself — check the code for unexpected network calls or data exfiltration. 2) Be cautious about running the provided shell snippets as-is: they reference another tool (gcmd), uvx/uv, jq, and local paths that likely don't exist on your system. 3) Understand that OAuth will create cached Google credentials — verify where those tokens are stored and revoke them if needed. 4) If you only need basic gcalcli functionality, prefer the official upstream package or vetted releases rather than an unreviewed fork. 5) If you proceed, run commands in a controlled environment (non-root account, sandbox/container) and avoid exposing sensitive data or downloading attachments until you confirm the tool's behavior.
功能分析
Type: OpenClaw Skill Name: gcalcli Version: 0.1.0 The skill is classified as suspicious primarily due to its reliance on a custom GitHub fork of `gcalcli` (`git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json`) as specified in SKILL.md. This introduces a supply chain risk, as the custom fork's code is unvetted and could potentially contain malicious functionality, even if the instructions themselves do not explicitly leverage it for harm. Additionally, the skill instructs the agent to access and export broad categories of sensitive Google Calendar data, including meeting notes and attachments, and uses a hardcoded local path for another tool (`gcmd`) which raises portability and potential security concerns.
能力评估
Purpose & Capability
The stated purpose (interact with Google Calendar via gcalcli) aligns with the instructions which use gcalcli and OAuth. However the SKILL.md insists on a specific custom fork (github.com/shanemcd/gcalcli@attachments-in-tsv-and-json) to get attachment support; examples hard-code a developer email ([email protected]) and reference local repo paths, which are not part of a generic calendar skill and look like leftover developer-specific configuration.
Instruction Scope
Instructions go beyond simple examples: they tell users to install a custom fork from a VCS URL, run uvx/uv commands, use jq and gcmd, and cd into developer-specific paths (/var/home/shanemcd, /var/home/s). They also extract and export attachment URLs (potentially private Google Drive docs/meeting notes). The skill does not declare or justify these external tools or the filesystem operations, which increases the risk of unexpected behavior or data exposure.
Install Mechanism
Although the registry contains no install spec, the SKILL.md explicitly instructs installing code from a GitHub VCS URL using uvx (pip-style 'git+https' install). Pulling and running a third-party fork from GitHub will execute arbitrary Python code on the host and is a moderate-risk install pattern; the fork is not an official upstream release and the SKILL.md pins a dependency (google-api-core<2.28.0).
Credentials
The skill requests no env vars in registry metadata, which matches the use of interactive Google OAuth described in the doc (browser-based auth, cached credentials). That is proportionate for calendar access. However the SKILL.md does not declare where credentials are cached, and it references other tools (gcmd) and paths that may require additional access or credentials not declared in the skill.
Persistence & Privilege
The skill is not marked always:true and has no install payload in the registry. The only persistence implied is the standard OAuth credential caching described in the doc — this is expected for an OAuth-based calendar client and does not indicate elevated permanent privileges over the agent platform.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install gcalcli
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /gcalcli 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v0.1.0
Initial release: Adds skill for interacting with Google Calendar using a custom gcalcli fork. - Provides detailed usage instructions for viewing, searching, and exporting Google Calendar events. - Highlights installation with a custom gcalcli fork supporting event attachments (including "Notes by Gemini"). - Describes output formats (JSON, TSV, human-readable) and how to use them for advanced filtering and automation. - Includes workflows and example commands for exporting attached meeting notes and searching events by content or attachment type.
元数据
Slug gcalcli
版本 0.1.0
许可证
累计安装 14
当前安装数 13
历史版本数 1
常见问题

Gcalcli 是什么?

Interact with Google Calendar via gcalcli. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 3539 次。

如何安装 Gcalcli?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install gcalcli」即可一键安装,无需额外配置。

Gcalcli 是免费的吗?

是的,Gcalcli 完全免费(开源免费),可自由下载、安装和使用。

Gcalcli 支持哪些平台?

Gcalcli 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Gcalcli?

由 gargravish(@gargravish)开发并维护,当前版本 v0.1.0。

💬 留言讨论