{
  "schemaVersion": "1.0",
  "item": {
    "slug": "martok9803-reminder-engine",
    "name": "Reminder Engine",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/martok9803/martok9803-reminder-engine",
    "canonicalUrl": "https://clawhub.ai/martok9803/martok9803-reminder-engine",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/martok9803-reminder-engine",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=martok9803-reminder-engine",
    "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-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/martok9803-reminder-engine"
    },
    "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/martok9803-reminder-engine",
    "agentPageUrl": "https://openagent3.xyz/skills/martok9803-reminder-engine/agent",
    "manifestUrl": "https://openagent3.xyz/skills/martok9803-reminder-engine/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/martok9803-reminder-engine/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": "Reminder Engine",
        "body": "Turn natural-language reminders into OpenClaw cron jobs."
      },
      {
        "title": "1) Parse intent",
        "body": "Classify the request:\n\nOne-shot: “in 20 minutes”, “tomorrow at 9”, “on March 1st at 10:00”\nRecurring: “every day at 9”, “every weekday at 10:30”, “every Monday”, “every 2 hours”\nManagement: “list reminders”, “cancel X”, “disable/enable”, “snooze X”\n\nExtract:\n\nreminder text (what should be said when it fires)\ndelivery channel context (current chat unless user specifies otherwise)\ntimezone (default to the runtime timezone unless user specifies)"
      },
      {
        "title": "2) Confirm schedule (always)",
        "body": "Before creating/updating/removing jobs, echo back:\n\nthe computed schedule in human form (and timezone)\nwhether it’s one-shot or recurring\nthe exact reminder message text\n\nIf the user’s wording is ambiguous (“next Friday”, “in the morning”), ask a single clarifying question."
      },
      {
        "title": "3) Create the cron job (reminders)",
        "body": "Use the cron tool.\n\nRules:\n\nPrefer schedule.kind=\"at\" for one-shots.\nPrefer schedule.kind=\"cron\" for recurring reminders (use tz when possible).\nUse sessionTarget=\"main\" and payload.kind=\"systemEvent\".\nWrite payload text like a reminder: start with “Reminder:” (especially if the reminder is set far in advance).\nInclude light context if it helps (“Reminder: submit the invoice (you said you need this for the client call)”)."
      },
      {
        "title": "4) List / cancel / snooze",
        "body": "List: use cron.list, show jobId + next run + name/summary.\nCancel: cron.remove(jobId) (prefer cancelling by exact jobId; if user provides text, search list and confirm).\nSnooze: implement as cancel+recreate (one-shot) or a one-shot override reminder."
      },
      {
        "title": "Reminder text quality",
        "body": "Keep it short and action-oriented.\nAvoid secrets.\nIf the reminder is for a public channel, warn the user."
      },
      {
        "title": "Safety",
        "body": "Never create spammy recurring reminders without explicit confirmation.\nNever “broadcast” reminders to multiple targets unless explicitly requested.\nNever include access keys/tokens in reminder payloads."
      },
      {
        "title": "Examples (what good looks like)",
        "body": "User: “remind me in 20 minutes to stretch”\n\nCreate one-shot at job.\nPayload text: Reminder: stretch.\n\nUser: “every weekday at 10:30 remind me to stand up”\n\nCreate recurring cron job in local timezone.\nPayload text: Reminder: stand up (weekday standup alarm).\n\nUser: “list my reminders”\n\nList jobs; show ids so the user can say “cancel <id>”.\n\nUser: “cancel the stand up reminder”\n\nList matching jobs, ask which one if multiple, then remove."
      }
    ],
    "body": "Reminder Engine\n\nTurn natural-language reminders into OpenClaw cron jobs.\n\nWorkflow\n1) Parse intent\n\nClassify the request:\n\nOne-shot: “in 20 minutes”, “tomorrow at 9”, “on March 1st at 10:00”\nRecurring: “every day at 9”, “every weekday at 10:30”, “every Monday”, “every 2 hours”\nManagement: “list reminders”, “cancel X”, “disable/enable”, “snooze X”\n\nExtract:\n\nreminder text (what should be said when it fires)\ndelivery channel context (current chat unless user specifies otherwise)\ntimezone (default to the runtime timezone unless user specifies)\n2) Confirm schedule (always)\n\nBefore creating/updating/removing jobs, echo back:\n\nthe computed schedule in human form (and timezone)\nwhether it’s one-shot or recurring\nthe exact reminder message text\n\nIf the user’s wording is ambiguous (“next Friday”, “in the morning”), ask a single clarifying question.\n\n3) Create the cron job (reminders)\n\nUse the cron tool.\n\nRules:\n\nPrefer schedule.kind=\"at\" for one-shots.\nPrefer schedule.kind=\"cron\" for recurring reminders (use tz when possible).\nUse sessionTarget=\"main\" and payload.kind=\"systemEvent\".\nWrite payload text like a reminder: start with “Reminder:” (especially if the reminder is set far in advance).\nInclude light context if it helps (“Reminder: submit the invoice (you said you need this for the client call)”).\n4) List / cancel / snooze\nList: use cron.list, show jobId + next run + name/summary.\nCancel: cron.remove(jobId) (prefer cancelling by exact jobId; if user provides text, search list and confirm).\nSnooze: implement as cancel+recreate (one-shot) or a one-shot override reminder.\nReminder text quality\nKeep it short and action-oriented.\nAvoid secrets.\nIf the reminder is for a public channel, warn the user.\nSafety\nNever create spammy recurring reminders without explicit confirmation.\nNever “broadcast” reminders to multiple targets unless explicitly requested.\nNever include access keys/tokens in reminder payloads.\nExamples (what good looks like)\n\nUser: “remind me in 20 minutes to stretch”\n\nCreate one-shot at job.\nPayload text: Reminder: stretch.\n\nUser: “every weekday at 10:30 remind me to stand up”\n\nCreate recurring cron job in local timezone.\nPayload text: Reminder: stand up (weekday standup alarm).\n\nUser: “list my reminders”\n\nList jobs; show ids so the user can say “cancel <id>”.\n\nUser: “cancel the stand up reminder”\n\nList matching jobs, ask which one if multiple, then remove."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/martok9803/martok9803-reminder-engine",
    "publisherUrl": "https://clawhub.ai/martok9803/martok9803-reminder-engine",
    "owner": "martok9803",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/martok9803-reminder-engine",
    "downloadUrl": "https://openagent3.xyz/downloads/martok9803-reminder-engine",
    "agentUrl": "https://openagent3.xyz/skills/martok9803-reminder-engine/agent",
    "manifestUrl": "https://openagent3.xyz/skills/martok9803-reminder-engine/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/martok9803-reminder-engine/agent.md"
  }
}