{
  "schemaVersion": "1.0",
  "item": {
    "slug": "gcalcli",
    "name": "Gcalcli",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/gargravish/gcalcli",
    "canonicalUrl": "https://clawhub.ai/gargravish/gcalcli",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/gcalcli",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=gcalcli",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "gcalcli",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-29T23:11:46.368Z",
      "expiresAt": "2026-05-06T23:11:46.368Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=gcalcli",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=gcalcli",
        "contentDisposition": "attachment; filename=\"gcalcli-0.1.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "gcalcli"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/gcalcli"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/gcalcli",
    "agentPageUrl": "https://openagent3.xyz/skills/gcalcli/agent",
    "manifestUrl": "https://openagent3.xyz/skills/gcalcli/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/gcalcli/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Calendar Reference",
        "body": "This document provides details on using gcalcli to view and manage calendar events."
      },
      {
        "title": "Installation",
        "body": "gcalcli is a Python CLI for Google Calendar that works with uvx for one-time execution.\n\nIMPORTANT: Always use the custom fork with attachment support:\n\nuvx --from \"git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json\" --with \"google-api-core<2.28.0\" gcalcli\n\nThis custom version includes attachments in TSV and JSON output, which is essential for accessing meeting notes and other event attachments."
      },
      {
        "title": "Authentication",
        "body": "First time running gcalcli, it will:\n\nOpen a browser for Google OAuth authentication\nCache credentials for future use\nRequest calendar read permissions"
      },
      {
        "title": "View Upcoming Agenda",
        "body": "Recommended: JSON format with full details (structured data with attachments):\n\nuvx --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\n\nAlternative: TSV format (tab-separated, parseable):\n\nuvx --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\n\nHuman-readable format (may truncate long descriptions):\n\nuvx --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\n\nBasic agenda view (minimal details):\n\nuvx --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"
      },
      {
        "title": "Date Ranges",
        "body": "Important: gcalcli agenda shows events from NOW onwards by default.\n\nWhen 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.\n\nSpecific date range:\n\nuvx --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\"\n\nToday only (from current time onwards):\n\nuvx --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\"\n\nSee earlier today's events (use absolute dates):\n\nuvx --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\"\n\nNext week:\n\nuvx --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\""
      },
      {
        "title": "Search Calendar",
        "body": "Search for events by text:\n\nuvx --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\""
      },
      {
        "title": "Access Meeting Attachments and Gemini Notes",
        "body": "IMPORTANT: The custom gcalcli fork includes attachments array in JSON/TSV output.\n\nEach event's attachments array contains objects with:\n\nattachment_title: Title of the attachment (e.g., \"Notes by Gemini\", \"Recording\", \"Chat\")\nattachment_url: Direct link to Google Drive file or Google Doc\n\nCommon attachment types:\n\n\"Notes by Gemini\": AI-generated meeting notes from Google Meet\nRecording: Meeting recordings (video files)\nChat: Meeting chat transcripts\nShared docs: Agendas, planning docs, presentations\n\nSearch for events with Gemini notes:\n\n# Find all events with Gemini notes\nuvx --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(.attachment_title | contains(\"Notes by Gemini\"))]}'\n\n# Get just the titles and Gemini note URLs\nuvx --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(.attachment_title | contains(\"Notes by Gemini\")) | .attachment_url)\"'\n\nFilter events by attachment type:\n\n# Events with recordings\nuvx --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\"))'\n\n# Events with any attachments\nuvx --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)'\n\nExport Gemini notes using gcmd:\n\nSingle meeting export:\n\n# 1. Find meeting with Gemini notes\nGEMINI_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(.attachment_title | contains(\"Notes by Gemini\")) | .attachment_url' | head -1)\n\n# 2. Export to markdown using gcmd\ncd /var/home/shanemcd/github/shanemcd/gcmd\nuv run gcmd export \"$GEMINI_URL\" -o ~/Downloads/\n\nBulk export ALL Gemini notes from search results (parallel):\n\n# Extract Gemini note URLs and export in parallel (8 concurrent processes)\ncd /var/home/shanemcd/github/shanemcd/gcmd\nuvx --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(.attachment_title | contains(\"Notes by Gemini\")) | .attachment_url' | sort -u | xargs -P 8 -I {} sh -c 'uv run gcmd export \"{}\" -o ~/Downloads/meeting-notes/'\n\nThis efficiently:\n\nSearches calendar for meetings matching your query\nFilters to only meetings with Gemini notes\nExports all notes in parallel (8 at a time) to organized directory\nUses direct pipeline (no intermediate files)\nDeduplicates URLs with sort -u\n\nCommon workflow - Review recent meeting notes:\n\n# Search for recent meetings on a topic\nuvx --from \"git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json\" --with \"google-api-core<2.28.0\" gcalcli search \"ANSTRAT-1567\" --calendar smcdonal@redhat.com --json\n\n# Filter to show only events with Gemini notes\nuvx --from \"git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json\" --with \"google-api-core<2.28.0\" gcalcli search \"ANSTRAT-1567\" --calendar smcdonal@redhat.com --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]}'\n\n# Export the most recent Gemini notes for review\n# (extract URL, then use gcmd export)"
      },
      {
        "title": "--json (JSON Format) RECOMMENDED",
        "body": "Structured JSON output with complete event data\nIncludes attachments array with title and fileUrl for each attachment\nAll event fields preserved\nEasy to parse programmatically with jq or Python\nNo truncation of any fields\nBest for accessing meeting notes and attachments"
      },
      {
        "title": "--tsv (Tab-Separated Values)",
        "body": "One event per line\nTab-separated fields:\n\nid\nstart_date, start_time\nend_date, end_time\nhtml_link\nhangout_link\nconference details\ntitle\nlocation\ndescription (full, no truncation)\ncalendar\nemail\nattachments (pipe-separated: title|url|title|url...)\naction\n\n\nIdeal for parsing with standard Unix tools (grep, awk, cut)\nNo ANSI color codes or formatting"
      },
      {
        "title": "Default Format",
        "body": "Human-readable colored output\nShows time, title, basic details\nMay truncate long descriptions with \"...\" indicator"
      },
      {
        "title": "--details all",
        "body": "Includes full descriptions\nShows all attendees with response status\nConference/meeting links\nLocation information\nAttachments (in human-readable format)"
      },
      {
        "title": "1. Morning Review",
        "body": "Check what's on today's schedule (shows from current time onwards):\n\nuvx --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 \"today\"\n\nNote: This shows events from NOW onwards. To see the full day including past events, use the specific date:\n\nuvx --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 \"2025-10-07\" \"2025-10-07\""
      },
      {
        "title": "2. Weekly Planning",
        "body": "See upcoming week to plan deep work time:\n\nuvx --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 \"monday\" \"friday\""
      },
      {
        "title": "3. Meeting Preparation",
        "body": "Check details for upcoming meetings:\n\nuvx --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 \"today\" \"tomorrow\""
      },
      {
        "title": "4. Find Meeting Links and Notes",
        "body": "Get conference links and meeting notes for a meeting:\n\n# Using JSON (recommended for accessing attachments)\nuvx --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 | jq '.[] | select(.title | contains(\"Meeting Name\"))'\n\n# Using TSV\nuvx --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 | grep \"Meeting Name\""
      },
      {
        "title": "5. Context Before Work",
        "body": "Before working on a feature, check if there are relevant sync meetings:\n\nuvx gcalcli search --calendar smcdonal@redhat.com \"ANSTRAT-1673\""
      },
      {
        "title": "Calendar-Aware Planning",
        "body": "When planning your day's agenda:\n\nCheck calendar for upcoming related meetings\nNote if meetings happen before important deadlines (e.g., sync 2 days before release)\nPlan work to prepare for discussions\nIdentify good time blocks for focused work (between meetings)"
      },
      {
        "title": "Examples",
        "body": "ANSTRAT-1673 Scenario:\n\nOct 8: Sync meeting with Demetrius Lima\nOct 10: Expected llama-stack release\nAction: Check calendar to confirm timing, prepare talking points\n\nPre-Meeting Prep:\n\n# See what's coming up this week with attachments\nuvx --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 \"monday\" \"friday\"\n\n# Check specific meeting details\nuvx --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 --json \"ANSTRAT\""
      },
      {
        "title": "Tips",
        "body": "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\nAlways use --json flag: Default to JSON format for structured data with attachments\nUse jq for parsing: JSON output works perfectly with jq for filtering and extracting data\nCheck calendar at session start: Part of standard workflow\nTime-box focused work: Look for gaps between meetings\nPrepare for syncs: Check calendar 1-2 days before important meetings\nAccess meeting notes: Use jq to filter for Gemini notes, then export with gcmd\nSearch before export: Use gcalcli search to find relevant meetings, then filter attachments array\nUnderstand time ranges: \"today\" shows from NOW onwards, not the full day. Use specific dates for complete day view."
      },
      {
        "title": "Limitations",
        "body": "Read-only (no event creation/modification via CLI documented here)\nRequires OAuth authentication\nMay need periodic re-authentication\nMultiple calendars require separate --calendar flags"
      },
      {
        "title": "Additional Commands",
        "body": "List all calendars:\n\nuvx --from \"git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json\" --with \"google-api-core<2.28.0\" gcalcli list\n\nView in calendar format (month view):\n\nuvx --from \"git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json\" --with \"google-api-core<2.28.0\" gcalcli calm\n\nQuick view (next 5 events) with JSON:\n\nuvx --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 '.[0:5]'"
      },
      {
        "title": "Reference",
        "body": "Official gcalcli documentation: https://github.com/insanum/gcalcli\nCustom fork with attachment support: https://github.com/shanemcd/gcalcli/tree/attachments-in-tsv-and-json\nUses Google Calendar API v3\nSupports multiple output formats (JSON, TSV, text)"
      }
    ],
    "body": "Calendar Reference\n\nThis document provides details on using gcalcli to view and manage calendar events.\n\nInstallation\n\ngcalcli is a Python CLI for Google Calendar that works with uvx for one-time execution.\n\nIMPORTANT: Always use the custom fork with attachment support:\n\nuvx --from \"git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json\" --with \"google-api-core<2.28.0\" gcalcli\n\n\nThis custom version includes attachments in TSV and JSON output, which is essential for accessing meeting notes and other event attachments.\n\nAuthentication\n\nFirst time running gcalcli, it will:\n\nOpen a browser for Google OAuth authentication\nCache credentials for future use\nRequest calendar read permissions\nCommon Commands\nView Upcoming Agenda\n\nRecommended: JSON format with full details (structured data with attachments):\n\nuvx --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\n\n\nAlternative: TSV format (tab-separated, parseable):\n\nuvx --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\n\n\nHuman-readable format (may truncate long descriptions):\n\nuvx --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\n\n\nBasic agenda view (minimal details):\n\nuvx --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\n\nDate Ranges\n\nImportant: gcalcli agenda shows events from NOW onwards by default.\n\nWhen 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.\n\nSpecific date range:\n\nuvx --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\"\n\n\nToday only (from current time onwards):\n\nuvx --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\"\n\n\nSee earlier today's events (use absolute dates):\n\nuvx --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\"\n\n\nNext week:\n\nuvx --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\"\n\nSearch Calendar\n\nSearch for events by text:\n\nuvx --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\"\n\nAccess Meeting Attachments and Gemini Notes\n\nIMPORTANT: The custom gcalcli fork includes attachments array in JSON/TSV output.\n\nEach event's attachments array contains objects with:\n\nattachment_title: Title of the attachment (e.g., \"Notes by Gemini\", \"Recording\", \"Chat\")\nattachment_url: Direct link to Google Drive file or Google Doc\n\nCommon attachment types:\n\n\"Notes by Gemini\": AI-generated meeting notes from Google Meet\nRecording: Meeting recordings (video files)\nChat: Meeting chat transcripts\nShared docs: Agendas, planning docs, presentations\n\nSearch for events with Gemini notes:\n\n# Find all events with Gemini notes\nuvx --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(.attachment_title | contains(\"Notes by Gemini\"))]}'\n\n# Get just the titles and Gemini note URLs\nuvx --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(.attachment_title | contains(\"Notes by Gemini\")) | .attachment_url)\"'\n\n\nFilter events by attachment type:\n\n# Events with recordings\nuvx --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\"))'\n\n# Events with any attachments\nuvx --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)'\n\n\nExport Gemini notes using gcmd:\n\nSingle meeting export:\n\n# 1. Find meeting with Gemini notes\nGEMINI_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(.attachment_title | contains(\"Notes by Gemini\")) | .attachment_url' | head -1)\n\n# 2. Export to markdown using gcmd\ncd /var/home/shanemcd/github/shanemcd/gcmd\nuv run gcmd export \"$GEMINI_URL\" -o ~/Downloads/\n\n\nBulk export ALL Gemini notes from search results (parallel):\n\n# Extract Gemini note URLs and export in parallel (8 concurrent processes)\ncd /var/home/shanemcd/github/shanemcd/gcmd\nuvx --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(.attachment_title | contains(\"Notes by Gemini\")) | .attachment_url' | sort -u | xargs -P 8 -I {} sh -c 'uv run gcmd export \"{}\" -o ~/Downloads/meeting-notes/'\n\n\nThis efficiently:\n\nSearches calendar for meetings matching your query\nFilters to only meetings with Gemini notes\nExports all notes in parallel (8 at a time) to organized directory\nUses direct pipeline (no intermediate files)\nDeduplicates URLs with sort -u\n\nCommon workflow - Review recent meeting notes:\n\n# Search for recent meetings on a topic\nuvx --from \"git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json\" --with \"google-api-core<2.28.0\" gcalcli search \"ANSTRAT-1567\" --calendar smcdonal@redhat.com --json\n\n# Filter to show only events with Gemini notes\nuvx --from \"git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json\" --with \"google-api-core<2.28.0\" gcalcli search \"ANSTRAT-1567\" --calendar smcdonal@redhat.com --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]}'\n\n# Export the most recent Gemini notes for review\n# (extract URL, then use gcmd export)\n\nOutput Formats\n--json (JSON Format) RECOMMENDED\nStructured JSON output with complete event data\nIncludes attachments array with title and fileUrl for each attachment\nAll event fields preserved\nEasy to parse programmatically with jq or Python\nNo truncation of any fields\nBest for accessing meeting notes and attachments\n--tsv (Tab-Separated Values)\nOne event per line\nTab-separated fields:\nid\nstart_date, start_time\nend_date, end_time\nhtml_link\nhangout_link\nconference details\ntitle\nlocation\ndescription (full, no truncation)\ncalendar\nemail\nattachments (pipe-separated: title|url|title|url...)\naction\nIdeal for parsing with standard Unix tools (grep, awk, cut)\nNo ANSI color codes or formatting\nDefault Format\nHuman-readable colored output\nShows time, title, basic details\nMay truncate long descriptions with \"...\" indicator\n--details all\nIncludes full descriptions\nShows all attendees with response status\nConference/meeting links\nLocation information\nAttachments (in human-readable format)\nUse Cases\n1. Morning Review\n\nCheck what's on today's schedule (shows from current time onwards):\n\nuvx --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 \"today\"\n\n\nNote: This shows events from NOW onwards. To see the full day including past events, use the specific date:\n\nuvx --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 \"2025-10-07\" \"2025-10-07\"\n\n2. Weekly Planning\n\nSee upcoming week to plan deep work time:\n\nuvx --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 \"monday\" \"friday\"\n\n3. Meeting Preparation\n\nCheck details for upcoming meetings:\n\nuvx --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 \"today\" \"tomorrow\"\n\n4. Find Meeting Links and Notes\n\nGet conference links and meeting notes for a meeting:\n\n# Using JSON (recommended for accessing attachments)\nuvx --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 | jq '.[] | select(.title | contains(\"Meeting Name\"))'\n\n# Using TSV\nuvx --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 | grep \"Meeting Name\"\n\n5. Context Before Work\n\nBefore working on a feature, check if there are relevant sync meetings:\n\nuvx gcalcli search --calendar smcdonal@redhat.com \"ANSTRAT-1673\"\n\nIntegration with Work Tracking\nCalendar-Aware Planning\n\nWhen planning your day's agenda:\n\nCheck calendar for upcoming related meetings\nNote if meetings happen before important deadlines (e.g., sync 2 days before release)\nPlan work to prepare for discussions\nIdentify good time blocks for focused work (between meetings)\nExamples\n\nANSTRAT-1673 Scenario:\n\nOct 8: Sync meeting with Demetrius Lima\nOct 10: Expected llama-stack release\nAction: Check calendar to confirm timing, prepare talking points\n\nPre-Meeting Prep:\n\n# See what's coming up this week with attachments\nuvx --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 \"monday\" \"friday\"\n\n# Check specific meeting details\nuvx --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 --json \"ANSTRAT\"\n\nTips\nAlways 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\nAlways use --json flag: Default to JSON format for structured data with attachments\nUse jq for parsing: JSON output works perfectly with jq for filtering and extracting data\nCheck calendar at session start: Part of standard workflow\nTime-box focused work: Look for gaps between meetings\nPrepare for syncs: Check calendar 1-2 days before important meetings\nAccess meeting notes: Use jq to filter for Gemini notes, then export with gcmd\nSearch before export: Use gcalcli search to find relevant meetings, then filter attachments array\nUnderstand time ranges: \"today\" shows from NOW onwards, not the full day. Use specific dates for complete day view.\nLimitations\nRead-only (no event creation/modification via CLI documented here)\nRequires OAuth authentication\nMay need periodic re-authentication\nMultiple calendars require separate --calendar flags\nAdditional Commands\n\nList all calendars:\n\nuvx --from \"git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json\" --with \"google-api-core<2.28.0\" gcalcli list\n\n\nView in calendar format (month view):\n\nuvx --from \"git+https://github.com/shanemcd/gcalcli@attachments-in-tsv-and-json\" --with \"google-api-core<2.28.0\" gcalcli calm\n\n\nQuick view (next 5 events) with JSON:\n\nuvx --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 '.[0:5]'\n\nReference\nOfficial gcalcli documentation: https://github.com/insanum/gcalcli\nCustom fork with attachment support: https://github.com/shanemcd/gcalcli/tree/attachments-in-tsv-and-json\nUses Google Calendar API v3\nSupports multiple output formats (JSON, TSV, text)"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/gargravish/gcalcli",
    "publisherUrl": "https://clawhub.ai/gargravish/gcalcli",
    "owner": "gargravish",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/gcalcli",
    "downloadUrl": "https://openagent3.xyz/downloads/gcalcli",
    "agentUrl": "https://openagent3.xyz/skills/gcalcli/agent",
    "manifestUrl": "https://openagent3.xyz/skills/gcalcli/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/gcalcli/agent.md"
  }
}