{
  "schemaVersion": "1.0",
  "item": {
    "slug": "gcal-pro-calendar",
    "name": "gcal-pro - Google Calendar",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/bilalmohamed187-cpu/gcal-pro-calendar",
    "canonicalUrl": "https://clawhub.ai/bilalmohamed187-cpu/gcal-pro-calendar",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/gcal-pro-calendar",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=gcal-pro-calendar",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "docs/GOOGLE_CLOUD_SETUP.md",
      "README-INSTALL.txt",
      "README.md",
      "references/api-quickref.md",
      "requirements.txt",
      "scripts/gcal_auth.py"
    ],
    "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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.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/gcal-pro-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/gcal-pro-calendar",
    "agentPageUrl": "https://openagent3.xyz/skills/gcal-pro-calendar/agent",
    "manifestUrl": "https://openagent3.xyz/skills/gcal-pro-calendar/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/gcal-pro-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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "gcal-pro",
        "body": "Manage Google Calendar through natural conversation."
      },
      {
        "title": "Quick Reference",
        "body": "ActionCommandTierView todaypython scripts/gcal_core.py todayFreeView tomorrowpython scripts/gcal_core.py tomorrowFreeView weekpython scripts/gcal_core.py weekFreeSearch eventspython scripts/gcal_core.py search -q \"meeting\"FreeList calendarspython scripts/gcal_core.py calendarsFreeFind free timepython scripts/gcal_core.py freeFreeQuick addpython scripts/gcal_core.py quick -q \"Lunch Friday noon\"ProDelete eventpython scripts/gcal_core.py delete --id EVENT_ID -yProMorning briefpython scripts/gcal_core.py briefPro"
      },
      {
        "title": "Setup",
        "body": "First-time setup required:\n\nUser must create Google Cloud project and OAuth credentials\nSave client_secret.json to ~/.config/gcal-pro/\nRun authentication:\npython scripts/gcal_auth.py auth\n\n\nBrowser opens → user grants calendar access → done\n\nCheck auth status:\n\npython scripts/gcal_auth.py status"
      },
      {
        "title": "Free Tier",
        "body": "View events (today, tomorrow, week, month)\nSearch events\nList calendars\nFind free time slots"
      },
      {
        "title": "Pro Tier ($12 one-time)",
        "body": "Everything in Free, plus:\nCreate events\nQuick add (natural language)\nUpdate/reschedule events\nDelete events\nMorning brief via cron"
      },
      {
        "title": "Viewing Schedule",
        "body": "When user asks \"What's on my calendar?\" or \"What do I have today?\":\n\ncd /path/to/gcal-pro\npython scripts/gcal_core.py today\n\nFor specific ranges:\n\n\"tomorrow\" → python scripts/gcal_core.py tomorrow\n\"this week\" → python scripts/gcal_core.py week\n\"meetings with Alex\" → python scripts/gcal_core.py search -q \"Alex\""
      },
      {
        "title": "Creating Events (Pro)",
        "body": "When user says \"Add X to my calendar\" or \"Schedule Y\":\n\nOption 1: Quick add (natural language)\n\npython scripts/gcal_core.py quick -q \"Lunch with Alex Friday at noon\"\n\nOption 2: Structured create (via Python)\n\nfrom scripts.gcal_core import create_event, parse_datetime\n\ncreate_event(\n    summary=\"Lunch with Alex\",\n    start=parse_datetime(\"Friday noon\"),\n    location=\"Cafe Roma\",\n    confirmed=True  # Set False to show confirmation prompt\n)"
      },
      {
        "title": "Modifying Events (Pro)",
        "body": "⚠️ CONFIRMATION REQUIRED for destructive actions!\n\nBefore deleting or significantly modifying an event, ALWAYS confirm with the user:\n\nShow event details\nAsk \"Should I delete/reschedule this?\"\nOnly proceed with confirmed=True or -y flag after user confirms\n\nDelete:\n\n# First, find the event\npython scripts/gcal_core.py search -q \"dentist\"\n# Shows event ID\n\n# Then delete (with user confirmation)\npython scripts/gcal_core.py delete --id abc123xyz -y"
      },
      {
        "title": "Finding Free Time",
        "body": "When user asks \"When am I free?\" or \"Find time for a 1-hour meeting\":\n\npython scripts/gcal_core.py free"
      },
      {
        "title": "Morning Brief (Pro + Cron)",
        "body": "Set up via Clawdbot cron to send daily agenda:\n\nfrom scripts.gcal_core import generate_morning_brief\nprint(generate_morning_brief())\n\nCron setup example:\n\nSchedule: 8:00 AM daily\nAction: Run python scripts/gcal_core.py brief\nDelivery: Send output to user's messaging channel"
      },
      {
        "title": "Error Handling",
        "body": "ErrorCauseSolution\"client_secret.json not found\"Setup incompleteComplete Google Cloud setup\"Token refresh failed\"Expired/revokedRun python scripts/gcal_auth.py auth --force\"requires Pro tier\"Free user attempting writePrompt upgrade or explain limitation\"Event not found\"Invalid event IDSearch for correct event first"
      },
      {
        "title": "Timezone Handling",
        "body": "All times are interpreted in user's local timezone (default: America/New_York)\nWhen user specifies timezone (e.g., \"2 PM EST\"), honor it\nDisplay times in user's local timezone\nStore in ISO 8601 format with timezone"
      },
      {
        "title": "Response Formatting",
        "body": "For event lists, use this format:\n\n📅 **Monday, January 27**\n  • 9:00 AM — Team standup\n  • 12:00 PM — Lunch with Alex 📍 Cafe Roma\n  • 3:00 PM — Client call\n\n📅 **Tuesday, January 28**\n  • 10:00 AM — Dentist appointment 📍 123 Main St\n\nFor confirmations:\n\n✓ Event created: \"Lunch with Alex\"\n  📅 Friday, Jan 31 at 12:00 PM\n  📍 Cafe Roma\n\nFor morning brief:\n\n☀️ Good morning! Here's your day:\n📆 Monday, January 27, 2026\n\nYou have 3 events today:\n  • 9:00 AM — Team standup\n  • 12:00 PM — Lunch with Alex\n  • 3:00 PM — Client call\n\n👀 Tomorrow: 2 events"
      },
      {
        "title": "File Locations",
        "body": "~/.config/gcal-pro/\n├── client_secret.json   # OAuth app credentials (user provides)\n├── token.json           # User's access token (auto-generated)\n└── license.json         # Pro license (if purchased)"
      },
      {
        "title": "Integration with Clawdbot",
        "body": "This skill works with:\n\nCron: Schedule morning briefs\nMemory: Store calendar preferences\nMessaging: Deliver briefs via Telegram/WhatsApp/etc."
      },
      {
        "title": "Upgrade Prompt",
        "body": "When a Free user attempts a Pro action, respond:\n\n⚠️ Creating events requires gcal-pro Pro ($12 one-time).\nPro includes: Create, edit, delete events + morning briefs.\n👉 Upgrade: [gumroad-link]\nFor now, I can show you your schedule (free) — want to see today's events?"
      }
    ],
    "body": "gcal-pro\n\nManage Google Calendar through natural conversation.\n\nQuick Reference\nAction\tCommand\tTier\nView today\tpython scripts/gcal_core.py today\tFree\nView tomorrow\tpython scripts/gcal_core.py tomorrow\tFree\nView week\tpython scripts/gcal_core.py week\tFree\nSearch events\tpython scripts/gcal_core.py search -q \"meeting\"\tFree\nList calendars\tpython scripts/gcal_core.py calendars\tFree\nFind free time\tpython scripts/gcal_core.py free\tFree\nQuick add\tpython scripts/gcal_core.py quick -q \"Lunch Friday noon\"\tPro\nDelete event\tpython scripts/gcal_core.py delete --id EVENT_ID -y\tPro\nMorning brief\tpython scripts/gcal_core.py brief\tPro\nSetup\n\nFirst-time setup required:\n\nUser must create Google Cloud project and OAuth credentials\nSave client_secret.json to ~/.config/gcal-pro/\nRun authentication:\npython scripts/gcal_auth.py auth\n\nBrowser opens → user grants calendar access → done\n\nCheck auth status:\n\npython scripts/gcal_auth.py status\n\nTiers\nFree Tier\nView events (today, tomorrow, week, month)\nSearch events\nList calendars\nFind free time slots\nPro Tier ($12 one-time)\nEverything in Free, plus:\nCreate events\nQuick add (natural language)\nUpdate/reschedule events\nDelete events\nMorning brief via cron\nUsage Patterns\nViewing Schedule\n\nWhen user asks \"What's on my calendar?\" or \"What do I have today?\":\n\ncd /path/to/gcal-pro\npython scripts/gcal_core.py today\n\n\nFor specific ranges:\n\n\"tomorrow\" → python scripts/gcal_core.py tomorrow\n\"this week\" → python scripts/gcal_core.py week\n\"meetings with Alex\" → python scripts/gcal_core.py search -q \"Alex\"\nCreating Events (Pro)\n\nWhen user says \"Add X to my calendar\" or \"Schedule Y\":\n\nOption 1: Quick add (natural language)\n\npython scripts/gcal_core.py quick -q \"Lunch with Alex Friday at noon\"\n\n\nOption 2: Structured create (via Python)\n\nfrom scripts.gcal_core import create_event, parse_datetime\n\ncreate_event(\n    summary=\"Lunch with Alex\",\n    start=parse_datetime(\"Friday noon\"),\n    location=\"Cafe Roma\",\n    confirmed=True  # Set False to show confirmation prompt\n)\n\nModifying Events (Pro)\n\n⚠️ CONFIRMATION REQUIRED for destructive actions!\n\nBefore deleting or significantly modifying an event, ALWAYS confirm with the user:\n\nShow event details\nAsk \"Should I delete/reschedule this?\"\nOnly proceed with confirmed=True or -y flag after user confirms\n\nDelete:\n\n# First, find the event\npython scripts/gcal_core.py search -q \"dentist\"\n# Shows event ID\n\n# Then delete (with user confirmation)\npython scripts/gcal_core.py delete --id abc123xyz -y\n\nFinding Free Time\n\nWhen user asks \"When am I free?\" or \"Find time for a 1-hour meeting\":\n\npython scripts/gcal_core.py free\n\nMorning Brief (Pro + Cron)\n\nSet up via Clawdbot cron to send daily agenda:\n\nfrom scripts.gcal_core import generate_morning_brief\nprint(generate_morning_brief())\n\n\nCron setup example:\n\nSchedule: 8:00 AM daily\nAction: Run python scripts/gcal_core.py brief\nDelivery: Send output to user's messaging channel\nError Handling\nError\tCause\tSolution\n\"client_secret.json not found\"\tSetup incomplete\tComplete Google Cloud setup\n\"Token refresh failed\"\tExpired/revoked\tRun python scripts/gcal_auth.py auth --force\n\"requires Pro tier\"\tFree user attempting write\tPrompt upgrade or explain limitation\n\"Event not found\"\tInvalid event ID\tSearch for correct event first\nTimezone Handling\nAll times are interpreted in user's local timezone (default: America/New_York)\nWhen user specifies timezone (e.g., \"2 PM EST\"), honor it\nDisplay times in user's local timezone\nStore in ISO 8601 format with timezone\nResponse Formatting\n\nFor event lists, use this format:\n\n📅 **Monday, January 27**\n  • 9:00 AM — Team standup\n  • 12:00 PM — Lunch with Alex 📍 Cafe Roma\n  • 3:00 PM — Client call\n\n📅 **Tuesday, January 28**\n  • 10:00 AM — Dentist appointment 📍 123 Main St\n\n\nFor confirmations:\n\n✓ Event created: \"Lunch with Alex\"\n  📅 Friday, Jan 31 at 12:00 PM\n  📍 Cafe Roma\n\n\nFor morning brief:\n\n☀️ Good morning! Here's your day:\n📆 Monday, January 27, 2026\n\nYou have 3 events today:\n  • 9:00 AM — Team standup\n  • 12:00 PM — Lunch with Alex\n  • 3:00 PM — Client call\n\n👀 Tomorrow: 2 events\n\nFile Locations\n~/.config/gcal-pro/\n├── client_secret.json   # OAuth app credentials (user provides)\n├── token.json           # User's access token (auto-generated)\n└── license.json         # Pro license (if purchased)\n\nIntegration with Clawdbot\n\nThis skill works with:\n\nCron: Schedule morning briefs\nMemory: Store calendar preferences\nMessaging: Deliver briefs via Telegram/WhatsApp/etc.\nUpgrade Prompt\n\nWhen a Free user attempts a Pro action, respond:\n\n⚠️ Creating events requires gcal-pro Pro ($12 one-time).\n\nPro includes: Create, edit, delete events + morning briefs.\n\n👉 Upgrade: [gumroad-link]\n\nFor now, I can show you your schedule (free) — want to see today's events?"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/bilalmohamed187-cpu/gcal-pro-calendar",
    "publisherUrl": "https://clawhub.ai/bilalmohamed187-cpu/gcal-pro-calendar",
    "owner": "bilalmohamed187-cpu",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/gcal-pro-calendar",
    "downloadUrl": "https://openagent3.xyz/downloads/gcal-pro-calendar",
    "agentUrl": "https://openagent3.xyz/skills/gcal-pro-calendar/agent",
    "manifestUrl": "https://openagent3.xyz/skills/gcal-pro-calendar/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/gcal-pro-calendar/agent.md"
  }
}