{
  "schemaVersion": "1.0",
  "item": {
    "slug": "webuntis",
    "name": "WebUntis",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/finnbusse/webuntis",
    "canonicalUrl": "https://clawhub.ai/finnbusse/webuntis",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/webuntis",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=webuntis",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "scripts/webuntis.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. 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/webuntis"
    },
    "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/webuntis",
    "agentPageUrl": "https://openagent3.xyz/skills/webuntis/agent",
    "manifestUrl": "https://openagent3.xyz/skills/webuntis/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/webuntis/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": "WebUntis (Untis) timetable",
        "body": "Use the bundled script to log in and fetch the timetable via JSON-RPC."
      },
      {
        "title": "Security / credentials",
        "body": "Do not ask the user to paste passwords into chat.\nPrefer a dedicated read-only student account if the school allows it.\nCredentials must be provided via environment variables (or injected securely by the operator).\n\nSingle profile:\n\nWEBUNTIS_BASE_URL (e.g. https://xyz.webuntis.com)\nWEBUNTIS_SCHOOL (school name / key used by WebUntis)\nWEBUNTIS_USER\nWEBUNTIS_PASS\nOptional: WEBUNTIS_ELEMENT_TYPE (default 5 = student)\nOptional: WEBUNTIS_ELEMENT_ID (if auto-detect fails)\n\nMultiple profiles (parallel):\n\nSet WEBUNTIS_PROFILE=<name> or pass --profile <name>\nProvide env vars prefixed by the profile name, e.g. for profile cdg:\n\nWEBUNTIS_CDG_BASE_URL\nWEBUNTIS_CDG_SCHOOL\nWEBUNTIS_CDG_USER\nWEBUNTIS_CDG_PASS\noptional: WEBUNTIS_CDG_ELEMENT_TYPE, WEBUNTIS_CDG_ELEMENT_ID"
      },
      {
        "title": "Quick commands (exec)",
        "body": "Today:\n\ncd skills/webuntis/scripts\n./webuntis.py today\n\n# or pick a profile\n./webuntis.py --profile cdg today\n\nRange:\n\ncd skills/webuntis/scripts\n./webuntis.py range 2026-02-10 2026-02-14"
      },
      {
        "title": "Troubleshooting",
        "body": "If you get \"Could not determine element-id\":\n\nRun once and capture the error.\nAdd WEBUNTIS_ELEMENT_ID=<number> and retry.\n\nIf auth fails:\n\nVerify WEBUNTIS_BASE_URL is correct for your school.\nVerify WEBUNTIS_SCHOOL matches the school key used by WebUntis."
      },
      {
        "title": "Output",
        "body": "The script prints one line per lesson/event:\nYYYY-MM-DD HH:MM-HH:MM · <subject> · Raum <room> · bei <teacher>"
      }
    ],
    "body": "WebUntis (Untis) timetable\n\nUse the bundled script to log in and fetch the timetable via JSON-RPC.\n\nSecurity / credentials\nDo not ask the user to paste passwords into chat.\nPrefer a dedicated read-only student account if the school allows it.\nCredentials must be provided via environment variables (or injected securely by the operator).\n\nSingle profile:\n\nWEBUNTIS_BASE_URL (e.g. https://xyz.webuntis.com)\nWEBUNTIS_SCHOOL (school name / key used by WebUntis)\nWEBUNTIS_USER\nWEBUNTIS_PASS\nOptional: WEBUNTIS_ELEMENT_TYPE (default 5 = student)\nOptional: WEBUNTIS_ELEMENT_ID (if auto-detect fails)\n\nMultiple profiles (parallel):\n\nSet WEBUNTIS_PROFILE=<name> or pass --profile <name>\nProvide env vars prefixed by the profile name, e.g. for profile cdg:\nWEBUNTIS_CDG_BASE_URL\nWEBUNTIS_CDG_SCHOOL\nWEBUNTIS_CDG_USER\nWEBUNTIS_CDG_PASS\noptional: WEBUNTIS_CDG_ELEMENT_TYPE, WEBUNTIS_CDG_ELEMENT_ID\nQuick commands (exec)\n\nToday:\n\ncd skills/webuntis/scripts\n./webuntis.py today\n\n# or pick a profile\n./webuntis.py --profile cdg today\n\n\nRange:\n\ncd skills/webuntis/scripts\n./webuntis.py range 2026-02-10 2026-02-14\n\nTroubleshooting\n\nIf you get \"Could not determine element-id\":\n\nRun once and capture the error.\nAdd WEBUNTIS_ELEMENT_ID=<number> and retry.\n\nIf auth fails:\n\nVerify WEBUNTIS_BASE_URL is correct for your school.\nVerify WEBUNTIS_SCHOOL matches the school key used by WebUntis.\nOutput\n\nThe script prints one line per lesson/event: YYYY-MM-DD HH:MM-HH:MM · <subject> · Raum <room> · bei <teacher>"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/finnbusse/webuntis",
    "publisherUrl": "https://clawhub.ai/finnbusse/webuntis",
    "owner": "finnbusse",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/webuntis",
    "downloadUrl": "https://openagent3.xyz/downloads/webuntis",
    "agentUrl": "https://openagent3.xyz/skills/webuntis/agent",
    "manifestUrl": "https://openagent3.xyz/skills/webuntis/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/webuntis/agent.md"
  }
}