Automated daily planning and reflection system with morning briefs, wind-down prompts, sleep nudges, and weekly reviews. Use when the user wants to set up a structured daily routine, morning briefings, evening reflection prompts, or weekly planning sessions. Triggers include requests for daily schedules, morning briefs, wind-down routines, sleep reminders, weekly reviews, productivity systems, or daily planning automation.
A comprehensive daily planning and reflection system that automates morning briefs, evening wind-downs, sleep nudges, and weekly reviews to help users stay focused, track progress, and maintain work-life balance.
Ensure Python 3 and required packages:
pip install google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client stripe
credentials.json to ~/.openclaw/google-tasks/python3 scripts/sync-google-tasks.pySee CONFIGURATION.md for detailed steps.
For ARR tracking in morning briefs:
.env.stripe in workspace root:
STRIPE_API_KEY=sk_live_...
Add ICS URL to TOOLS.md:
### Calendar
- **ICS URL:** `https://calendar.google.com/calendar/ical/...`
Option A: System Cron (Traditional)
crontab -e
# Add these lines:
0 7 * * * cd /path/to/workspace && python3 skills/daily-rhythm/scripts/sync-stripe-arr.py
30 8 * * * cd /path/to/workspace && python3 skills/daily-rhythm/scripts/morning-brief.sh
0 20 * * 0 cd /path/to/workspace && echo "Weekly review time"
30 22 * * * cd /path/to/workspace && echo "Wind-down time"
0 23 * * * cd /path/to/workspace && echo "Sleep nudge"
Option B: OpenClaw Cron (If Available)
Use the cron tool to create jobs with agentTurn payloads that generate and send briefs.
Copy the template from assets/HEARTBEAT_TEMPLATE.md to workspace root and customize:
The brief is generated by:
memory/YYYY-MM-DD.mdWhen user replies to 10:30pm prompt:
memory/YYYY-MM-DD.mdSunday 8pm prompt asks reflection questions. When user replies:
The morning brief opens with a centering section you can customize:
Examples:
Edit in HEARTBEAT.md or modify the morning brief generation.
Update default focus in HEARTBEAT.md:
### Focus
Your primary focus (e.g., "Product growth and customer acquisition")
Modify cron expressions:
30 8 * * * = 8:30am daily30 22 * * * = 10:30pm daily0 23 * * * = 11:00pm daily0 20 * * 0 = 8:00pm SundaysModify scripts/morning-brief.sh to include additional data sources.
workspace/
├── memory/
│ ├── YYYY-MM-DD.md # Wind-down responses
│ ├── google-tasks.json # Synced tasks
│ ├── stripe-data.json # ARR data
│ └── heartbeat-state.json # State tracking
├── skills/daily-rhythm/
│ ├── scripts/
│ │ ├── sync-google-tasks.py
│ │ ├── sync-stripe-arr.py
│ │ └── morning-brief.sh
│ ├── references/
│ │ └── CONFIGURATION.md
│ └── assets/
│ └── HEARTBEAT_TEMPLATE.md
└── HEARTBEAT.md # Your custom schedule
Syncs Google Tasks to local JSON. Requires credentials.json.
Calculates ARR from active Stripe subscriptions. Requires .env.stripe.
Orchestrates data sync and brief generation.
Google Tasks not syncing?
credentials.json existsStripe ARR not showing?
.env.stripe with valid API keyCron jobs not firing?
crontab -lSee CONFIGURATION.md for detailed troubleshooting.