{
  "schemaVersion": "1.0",
  "item": {
    "slug": "gog-calendar",
    "name": "Google Calendar (via gogcli)",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/lstpsche/gog-calendar",
    "canonicalUrl": "https://clawhub.ai/lstpsche/gog-calendar",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/gog-calendar",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=gog-calendar",
    "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",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/gog-calendar"
    },
    "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/gog-calendar",
    "agentPageUrl": "https://openagent3.xyz/skills/gog-calendar/agent",
    "manifestUrl": "https://openagent3.xyz/skills/gog-calendar/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/gog-calendar/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": "gog-calendar",
        "body": "Use gog (gogcli) for Google Calendar: agenda (events list) and keyword search across calendars."
      },
      {
        "title": "Output rule (tokens vs reliability)",
        "body": "gogcli stdout should stay parseable; prefer --plain / --json and put hints to stderr.  oai_citation:0‡GitHub\n\nDefault to --plain for read-only listing you only summarize (cheaper tokens):\n\nagenda listing (today / next days / range)\ncalendars list\n\n\nUse --json only when structure is required:\n\naggregating results across calendars (cross-calendar keyword search)\ndeduping / sorting / extracting IDs for follow-up calls\nany write workflow where exact fields matter\n\n\nIn automation runs, add --no-input (fail instead of prompting).  oai_citation:1‡GitHub"
      },
      {
        "title": "Calendar exclusions (post-processing)",
        "body": "Users may explicitly exclude certain calendars from searches/agenda (e.g., “National holidays”).\nWhen answering, you MUST:\n\nQuery broadly (e.g., events --all or iterate all calendars for search),\nThen filter out excluded calendars in post-processing.\n\nHow to determine excluded calendars:\n\nFirst, check the user’s preferences/memory for an explicit “exclude calendars” list.\nIf none is provided, apply a conservative default filter for obvious noise calendars:\n\ncalendars whose name/summary contains: holiday, holidays, national holidays (and localized equivalents)\n\n\nNever filter out user-owned calendars unless explicitly excluded.\n\nFiltering rule:\n\nIf you have calendar metadata (from gog calendar calendars), filter by calendar name/summary.\nIf you only have events output, filter by matching event’s calendarId to the excluded calendarIds resolved from the calendars list.\n\nAlways mention filtering briefly if it materially changes the answer:\n\n“(Filtered out: National holidays)”"
      },
      {
        "title": "Agenda (always cross-calendar, then filter)",
        "body": "For “what’s on my calendar today / tomorrow / this week / between X and Y”:\n\nMUST query all calendars:\n\ngog calendar events --all --from <date_or_iso> --to <date_or_iso> --plain\n\n\nThen apply calendar exclusions (above).\nDo not answer “nothing scheduled” unless you ran the command for the correct window and applied filtering.\n\nExamples:\n\nToday: gog calendar events --all --from 2026-02-04 --to 2026-02-05 --plain\nNext 7 days: gog calendar events --all --from 2026-02-04 --to 2026-02-11 --plain\n\nOutput formatting:\n\nsort by start time\ngroup by day\nshow: time range, summary, location (calendar name only if it helps)"
      },
      {
        "title": "Keyword search across calendars (best-effort, aggregate, then filter)",
        "body": "Calendar event queries are scoped to a calendarId (API is /calendars/{calendarId}/events), so keyword search must iterate calendars and aggregate results.  oai_citation:2‡Google for Developers\n\nDefault window:\n\nif user didn’t specify a range: next 6 months from today (inclusive)\nif user specified date/range: use it\n\nWorkflow (do not skip):\n\nList calendars (need IDs + names for filtering):\n\ngog calendar calendars --json\n\n\nBuild the set of excluded calendarIds from the exclusions rule.\nFor EACH non-excluded calendarId, search (JSON required for merge/dedupe):\n\ngog calendar search \"<query>\" --calendar <calendarId> --from <from> --to <to> --max 50 --json --no-input\n\n\nAggregate all matches across calendars (do NOT stop on first match unless user asked).\nDeduplicate by (calendarId, eventId), sort by start time.\nReport results and explicitly mention the searched window (and any filters applied).\n\nIf nothing found in default window:\n\nsay: “No events found in the next 6 months (<from> → <to>). Want me to search further (e.g., 12 months) or within specific dates?”\n\nFallback if user is sure it exists:\n\nask/derive an approximate date and list around it (then filter):\n\ngog calendar events --all --from <date-7d> --to <date+7d> --plain\n\n\nthen match by title tokens locally (casefold + token overlap)"
      },
      {
        "title": "Writes (create/update/delete/RSVP)",
        "body": "Before any write action:\n\nsummarize exact intent (calendar, title, start/end, timezone, attendees, location)\nask for explicit “yes”\nthen run the command"
      }
    ],
    "body": "gog-calendar\n\nUse gog (gogcli) for Google Calendar: agenda (events list) and keyword search across calendars.\n\nOutput rule (tokens vs reliability)\n\ngogcli stdout should stay parseable; prefer --plain / --json and put hints to stderr. oai_citation:0‡GitHub\n\nDefault to --plain for read-only listing you only summarize (cheaper tokens):\nagenda listing (today / next days / range)\ncalendars list\nUse --json only when structure is required:\naggregating results across calendars (cross-calendar keyword search)\ndeduping / sorting / extracting IDs for follow-up calls\nany write workflow where exact fields matter\nIn automation runs, add --no-input (fail instead of prompting). oai_citation:1‡GitHub\nCalendar exclusions (post-processing)\n\nUsers may explicitly exclude certain calendars from searches/agenda (e.g., “National holidays”).\nWhen answering, you MUST:\n\nQuery broadly (e.g., events --all or iterate all calendars for search),\nThen filter out excluded calendars in post-processing.\n\nHow to determine excluded calendars:\n\nFirst, check the user’s preferences/memory for an explicit “exclude calendars” list.\nIf none is provided, apply a conservative default filter for obvious noise calendars:\ncalendars whose name/summary contains: holiday, holidays, national holidays (and localized equivalents)\nNever filter out user-owned calendars unless explicitly excluded.\n\nFiltering rule:\n\nIf you have calendar metadata (from gog calendar calendars), filter by calendar name/summary.\nIf you only have events output, filter by matching event’s calendarId to the excluded calendarIds resolved from the calendars list.\n\nAlways mention filtering briefly if it materially changes the answer:\n\n“(Filtered out: National holidays)”\nAgenda (always cross-calendar, then filter)\n\nFor “what’s on my calendar today / tomorrow / this week / between X and Y”:\n\nMUST query all calendars:\ngog calendar events --all --from <date_or_iso> --to <date_or_iso> --plain\nThen apply calendar exclusions (above).\nDo not answer “nothing scheduled” unless you ran the command for the correct window and applied filtering.\n\nExamples:\n\nToday: gog calendar events --all --from 2026-02-04 --to 2026-02-05 --plain\nNext 7 days: gog calendar events --all --from 2026-02-04 --to 2026-02-11 --plain\n\nOutput formatting:\n\nsort by start time\ngroup by day\nshow: time range, summary, location (calendar name only if it helps)\nKeyword search across calendars (best-effort, aggregate, then filter)\n\nCalendar event queries are scoped to a calendarId (API is /calendars/{calendarId}/events), so keyword search must iterate calendars and aggregate results. oai_citation:2‡Google for Developers\n\nDefault window:\n\nif user didn’t specify a range: next 6 months from today (inclusive)\nif user specified date/range: use it\n\nWorkflow (do not skip):\n\nList calendars (need IDs + names for filtering):\ngog calendar calendars --json\nBuild the set of excluded calendarIds from the exclusions rule.\nFor EACH non-excluded calendarId, search (JSON required for merge/dedupe):\ngog calendar search \"<query>\" --calendar <calendarId> --from <from> --to <to> --max 50 --json --no-input\nAggregate all matches across calendars (do NOT stop on first match unless user asked).\nDeduplicate by (calendarId, eventId), sort by start time.\nReport results and explicitly mention the searched window (and any filters applied).\n\nIf nothing found in default window:\n\nsay: “No events found in the next 6 months (<from> → <to>). Want me to search further (e.g., 12 months) or within specific dates?”\n\nFallback if user is sure it exists:\n\nask/derive an approximate date and list around it (then filter):\ngog calendar events --all --from <date-7d> --to <date+7d> --plain\nthen match by title tokens locally (casefold + token overlap)\nWrites (create/update/delete/RSVP)\n\nBefore any write action:\n\nsummarize exact intent (calendar, title, start/end, timezone, attendees, location)\nask for explicit “yes”\nthen run the command"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/lstpsche/gog-calendar",
    "publisherUrl": "https://clawhub.ai/lstpsche/gog-calendar",
    "owner": "lstpsche",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/gog-calendar",
    "downloadUrl": "https://openagent3.xyz/downloads/gog-calendar",
    "agentUrl": "https://openagent3.xyz/skills/gog-calendar/agent",
    "manifestUrl": "https://openagent3.xyz/skills/gog-calendar/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/gog-calendar/agent.md"
  }
}