Install
openclaw skills install auto-reportAutomated daily/weekly/monthly report generation with scheduled delivery. Use when: generating reports, creating cron-based report tasks, pushing structured...
openclaw skills install auto-reportGenerate structured reports on schedule and deliver them to any chat channel.
Data Collection → Structured Summary → Template Rendering → Channel Delivery
| Type | Frequency | Best For |
|---|---|---|
| Daily Report | Every day | Work summaries, market recaps, health tracking |
| Weekly Report | Once a week | Sprint reviews, trend analysis, planning |
| Monthly Report | Once a month | KPI reviews, budget tracking |
| Ad-hoc Report | On demand | Incident analysis, deep research |
| Standup Report | Daily/Weekly | Team check-ins, progress updates |
## [Date] Daily Report
### Key Metrics
- Metric 1: value
- Metric 2: value
### Highlights
1. ...
2. ...
### Analysis
- ...
### Tomorrow's Focus
- ...
## Week X Report (MM.DD - MM.DD)
### This Week
- Mon: ...
- Tue: ...
### Metrics Summary
| Metric | This Week | Last Week | Change |
|--------|-----------|-----------|--------|
### Lessons Learned
1. ...
2. ...
### Next Week Plan
- ...
Create automated report tasks using OpenClaw cron:
# Daily report at 20:00 on workdays
openclaw cron add \
--name "Daily Report" \
--cron "0 20 * * 1-5" \
--tz "Asia/Shanghai" \
--session isolated \
--agent-turn "Generate the daily report. Read the relevant data sources, structure the findings, and deliver to the target channel."
# Weekly report every Friday at 16:00
openclaw cron add \
--name "Weekly Report" \
--cron "0 16 * * 5" \
--tz "Asia/Shanghai" \
--session isolated \
--agent-turn "Generate the weekly report covering this week's activity."
isolated sessions — prevents message duplicationagentTurn — not systemEvent (avoids triple-delivery bugs)delivery.mode: "none" — let the agent handle messaging itself{
"config": {"wide_screen_mode": true},
"header": {
"title": {"tag": "plain_text", "content": "📊 Daily Report — 2026-04-06"},
"template": "blue"
},
"elements": [
{"tag": "markdown", "content": "**Key Metrics**\n▸ Revenue: +12%\n▸ Users: 1.2k active"},
{"tag": "hr"},
{"tag": "markdown", "content": "**Highlights**\n1. Launched new feature\n2. Fixed critical bug"},
{"tag": "hr"},
{"tag": "markdown", "content": "**Tomorrow**\n▸ Ship v2.1\n▸ Team standup at 10am"}
]
}
Use the message tool: action=send, channel=feishu, target=chat:<chat_id>, card=<json>
Use the message tool with a message parameter for simple text delivery.
feishu_create_doc to create persistent documents (for archives)feishu_update_doc to update existing documents# After market close (workdays)
0 15 * * 1-5 Asia/Shanghai # A-share close
0 16 * * 1-5 Asia/Shanghai # Buffer for data collection
# Evening summaries
0 20 * * 1-5 Asia/Shanghai # Workday evening
0 22 * * * Asia/Shanghai # Before sleep
# Weekly reports
0 16 * * 5 Asia/Shanghai # Friday afternoon
0 8 * * 1 Asia/Shanghai # Monday morning
# Monthly reports
0 9 1 * * Asia/Shanghai # 1st of month
For complex workflows, chain multiple cron jobs:
This prevents timeout issues with complex reports.
# Daily health summary at 22:00
openclaw cron add --name "Health Daily" \
--cron "0 22 * * *" --tz "Asia/Shanghai" \
--session isolated \
--agent-turn "Read health/LOG.md and health/PROFILE.md. Generate a health summary covering: water intake, meals, exercise, sleep, weight trend. Deliver to user via message tool."
# Market briefing at 07:00
openclaw cron add --name "Market Intel" \
--cron "0 7 * * 1-5" --tz "Asia/Shanghai" \
--session isolated \
--agent-turn "Search for overnight US market data, commodity prices, and key news. Format as a structured briefing card and deliver to chat:oc_xxxxxx via message tool."
main and isolated session targets