{
  "schemaVersion": "1.0",
  "item": {
    "slug": "ms-outlook-teams-assistant",
    "name": "MS Outlook + Teams Assistant",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/abhinavjp/ms-outlook-teams-assistant",
    "canonicalUrl": "https://clawhub.ai/abhinavjp/ms-outlook-teams-assistant",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/ms-outlook-teams-assistant",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=ms-outlook-teams-assistant",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "references/config.example.json",
      "references/teams-graph-setup.md",
      "references/writing-style.md",
      "scripts/dismiss.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-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/ms-outlook-teams-assistant"
    },
    "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/ms-outlook-teams-assistant",
    "agentPageUrl": "https://openagent3.xyz/skills/ms-outlook-teams-assistant/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ms-outlook-teams-assistant/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ms-outlook-teams-assistant/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": "What this skill does",
        "body": "Inbox nagging (Outlook Desktop): find messages from the last 7 days that likely need a reply, then send reminders until dismissed.\nEmail reply drafting: produce concise drafts that match the user’s tone rules (conversational, spartan, polite; simple English; short; reduce redundancy; avoid em dashes).\nTeams tracking (optional): if Microsoft Graph is configured and permitted by tenant policy, track recent Teams chat messages that likely need a reply and nag similarly."
      },
      {
        "title": "Safety defaults",
        "body": "Do not auto-send emails or Teams messages.\nCreate drafts in Outlook, or paste drafts into Telegram for approval.\nFor reminders: send to Telegram by default; only send to Teams if explicitly enabled."
      },
      {
        "title": "A) Outlook Desktop automation (recommended)",
        "body": "Ensure Outlook Desktop is installed and signed in.\nInstall the Python dependency (ask before doing this on the machine):\n\npip install pywin32\n\n\nCreate a config file:\n\nCopy references/config.example.json → references/config.json and fill it.\nIMPORTANT: Do not commit references/config.json if it contains personal IDs."
      },
      {
        "title": "B) Teams via Graph (optional)",
        "body": "Only if you can create an Entra ID app registration and grant permissions.\n\nCopy references/config.example.json → references/config.json and fill teams.tenantId, teams.clientId, and teams.scopes.\nThen run scripts/teams_scan.py once to complete Device Code sign-in.\n\nSee references/teams-graph-setup.md."
      },
      {
        "title": "1) Scan and remind (Outlook)",
        "body": "Use scripts/scan_outlook.py."
      },
      {
        "title": "1b) Scan Teams (Graph)",
        "body": "Use scripts/teams_scan.py.\n\nParameters:\n\n--days 7 (default)\n\nFirst run will print a device code sign-in message (follow it once).\n\nParameters:\n\n--days 7 (default)\n--mode report|telegram (default: report)\n--max-items 200\n\nHeuristics (editable in config):\n\nWithin last N days\nNot from obvious broadcast sources\nPrefer threads where user is To: (not only CC) OR subject/body contains direct asks\nPrefer messages not replied by user (best-effort)\n\nOutput:\n\nA list of actionable items with: subject, sender, received time, why it was flagged.\n\nThen:\n\nIf --mode telegram, send a single concise reminder message with bullet items."
      },
      {
        "title": "2) Dismiss / snooze an item",
        "body": "This skill uses a local state file to avoid nag loops.\n\nDismiss: add the message’s internetMessageId (or subject+timestamp fallback) to the dismissed list.\nSnooze: store a snoozeUntil timestamp.\n\nUse scripts/state.py helpers (or edit JSON directly if needed)."
      },
      {
        "title": "3) Draft an email reply (Outlook)",
        "body": "Use scripts/draft_reply.py."
      },
      {
        "title": "4) Generate reminders (no send)",
        "body": "Use scripts/scan_all.py to update cached scan results, then scripts/remind.py to generate a Telegram-ready reminder message (it does not send).\nIt applies:\n\n1:1 Teams → remind when needsReply=true\nGroup Teams → remind when mentionedMe=true AND needsReply=true\nOutlook → remind for flagged items\n\nThe agent should send the output to Telegram if non-empty.\n\nInputs:\n\nEither a message EntryID (preferred) or search by subject + recent window.\n\nBehavior:\n\nExtract the thread (best-effort) + key metadata.\nGenerate 2 drafts:\n\nShort (2–5 sentences)\nNormal (5–10 sentences)\n\n\nApply tone rules from references/writing-style.md.\n\nOutputs:\n\nPrint drafts to stdout.\nOptionally create an Outlook draft reply (no sending) if --create-draft is set."
      },
      {
        "title": "When you need more context from the user",
        "body": "Ask only what you cannot infer:\n\nWhich email to reply to (subject / sender / when)\nThe user’s intent (agree/decline/ask for info/confirm timeline)\nAny constraints (deadlines, attachments, names)\n\nKeep questions minimal (max 3 at a time)."
      }
    ],
    "body": "MS Outlook + Teams Assistant (Desktop-first)\nWhat this skill does\nInbox nagging (Outlook Desktop): find messages from the last 7 days that likely need a reply, then send reminders until dismissed.\nEmail reply drafting: produce concise drafts that match the user’s tone rules (conversational, spartan, polite; simple English; short; reduce redundancy; avoid em dashes).\nTeams tracking (optional): if Microsoft Graph is configured and permitted by tenant policy, track recent Teams chat messages that likely need a reply and nag similarly.\nSafety defaults\nDo not auto-send emails or Teams messages.\nCreate drafts in Outlook, or paste drafts into Telegram for approval.\nFor reminders: send to Telegram by default; only send to Teams if explicitly enabled.\nSetup (one time)\nA) Outlook Desktop automation (recommended)\nEnsure Outlook Desktop is installed and signed in.\nInstall the Python dependency (ask before doing this on the machine):\npip install pywin32\nCreate a config file:\nCopy references/config.example.json → references/config.json and fill it.\nIMPORTANT: Do not commit references/config.json if it contains personal IDs.\nB) Teams via Graph (optional)\n\nOnly if you can create an Entra ID app registration and grant permissions.\n\nCopy references/config.example.json → references/config.json and fill teams.tenantId, teams.clientId, and teams.scopes.\nThen run scripts/teams_scan.py once to complete Device Code sign-in.\n\nSee references/teams-graph-setup.md.\n\nCore workflows\n1) Scan and remind (Outlook)\n\nUse scripts/scan_outlook.py.\n\n1b) Scan Teams (Graph)\n\nUse scripts/teams_scan.py.\n\nParameters:\n\n--days 7 (default)\n\nFirst run will print a device code sign-in message (follow it once).\n\nParameters:\n\n--days 7 (default)\n--mode report|telegram (default: report)\n--max-items 200\n\nHeuristics (editable in config):\n\nWithin last N days\nNot from obvious broadcast sources\nPrefer threads where user is To: (not only CC) OR subject/body contains direct asks\nPrefer messages not replied by user (best-effort)\n\nOutput:\n\nA list of actionable items with: subject, sender, received time, why it was flagged.\n\nThen:\n\nIf --mode telegram, send a single concise reminder message with bullet items.\n2) Dismiss / snooze an item\n\nThis skill uses a local state file to avoid nag loops.\n\nDismiss: add the message’s internetMessageId (or subject+timestamp fallback) to the dismissed list.\nSnooze: store a snoozeUntil timestamp.\n\nUse scripts/state.py helpers (or edit JSON directly if needed).\n\n3) Draft an email reply (Outlook)\n\nUse scripts/draft_reply.py.\n\n4) Generate reminders (no send)\n\nUse scripts/scan_all.py to update cached scan results, then scripts/remind.py to generate a Telegram-ready reminder message (it does not send). It applies:\n\n1:1 Teams → remind when needsReply=true\nGroup Teams → remind when mentionedMe=true AND needsReply=true\nOutlook → remind for flagged items\n\nThe agent should send the output to Telegram if non-empty.\n\nInputs:\n\nEither a message EntryID (preferred) or search by subject + recent window.\n\nBehavior:\n\nExtract the thread (best-effort) + key metadata.\nGenerate 2 drafts:\nShort (2–5 sentences)\nNormal (5–10 sentences)\nApply tone rules from references/writing-style.md.\n\nOutputs:\n\nPrint drafts to stdout.\nOptionally create an Outlook draft reply (no sending) if --create-draft is set.\nWhen you need more context from the user\n\nAsk only what you cannot infer:\n\nWhich email to reply to (subject / sender / when)\nThe user’s intent (agree/decline/ask for info/confirm timeline)\nAny constraints (deadlines, attachments, names)\n\nKeep questions minimal (max 3 at a time)."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/abhinavjp/ms-outlook-teams-assistant",
    "publisherUrl": "https://clawhub.ai/abhinavjp/ms-outlook-teams-assistant",
    "owner": "abhinavjp",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/ms-outlook-teams-assistant",
    "downloadUrl": "https://openagent3.xyz/downloads/ms-outlook-teams-assistant",
    "agentUrl": "https://openagent3.xyz/skills/ms-outlook-teams-assistant/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ms-outlook-teams-assistant/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ms-outlook-teams-assistant/agent.md"
  }
}