Install
openclaw skills install scheduled-reportsDefine, preview, approve, and manage recurring reports for OpenClaw. Use when the user asks for a scheduled report, daily or weekly report, automatic report, or wants to convert an ad hoc report into a repeatable OpenClaw cron. Also use when the user needs to update, pause, resume, or retire an existing recurring report. This skill sharpens the report definition and creates the cron; it is not a custom execution runner.
openclaw skills install scheduled-reportsUse this skill to turn a conversational reporting request into an approved recurring-report definition and an OpenClaw cron.
MEDIA:<path> line.messageTemplate); never deliver a bare artifact.enabled.delivery.channel is conversation or thread, default target.conversationId (or threadId) to the conversation where the user framed the request. Confirm with the user before targeting a different conversation.uiDefinition and the final executionPrompt.pdf-report, chart-mpl, etc.). Do not emit any user-facing text until the artifact file exists on disk.
b. Send the artifact inline using the same output contract as cron runs: caption block (which is the approval ask, for example "Aperçu du rapport. Répondez OK pour activer.") on the first line(s), followed by exactly one MEDIA:<path> line pointing at the generated file.
c. If the user signals the preview is missing, re-check the artifact on disk (regenerate if absent) and re-send it with the MEDIA:<path> line. Never re-emit the caption text without the file.Every scheduled report definition must contain at least:
schemaVersionreportIdnamepurposeownerstatusscheduledeliveryoutputdataSourcesuiDefinitionexecutionPromptruntimeGuardsFor enabled and paused reports, the definition must also include:
previewapprovalintegrityautomationverificationRead references/REPORT_DEFINITION.md for the canonical shape and field rules.
Validate every final definition with:
python3 skills/scheduled-reports/scripts/validate_report_definition.py \
--input config/scheduled-reports/weekly-sales-summary.json
Do not activate or resume a report definition that fails validation.
create: gather, draft, preview, approve, hash, validate, activation-check, save, create cronupdate: edit the saved definition, regenerate the preview when behavior changes, re-approve, refresh hashes, re-run the activation check, validate, update cronpause: set status to paused and pause the OpenClaw cronresume: restore status to enabled only after validating the saved definition, refreshing integrity data if needed, and re-running the activation checkretire: move to archived and remove or disable the cron only when the user explicitly asksmessageTemplate), not as a bare media reference.messageTemplate for chat, or subject + body for email) followed by a single MEDIA:<path> line. No other text, no other media tokens, no splitting across responses.sessionTarget as the real cron.mssql, chart-mpl, pdf-report, excel-export, and imap-smtp-mail.runtimeGuards as host-enforced rules, not decorative metadata.environmentFingerprint as a runtime-produced manifest string, not free text.skills:<name>[,<name>...] with ascending lexicographic ordering and no duplicates.queryFile references without a matching content hash.schedule.summary drift from the machine-readable trigger.Schedule clarification and chat-targeting rules in this skill are workflow requirements, not validator-enforced guarantees. The saved definition records the chosen trigger and delivery target, but it does not independently prove that an ambiguous schedule was clarified with the user or that a chat target matches the inbound conversation. Reliable enforcement for those behaviors must happen in the host runtime before the definition is saved.
These are recommendations, not hard requirements:
config/scheduled-reports/<reportId>.jsonexports/reports/previews/<reportId>/exports/reports/<reportId>/Adjust the exact paths to the host agent's workspace conventions.