Browser
daily-rhythm
Automated daily planning and reflection system with morning
---
name: daily-rhythm
description: 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.
---
# Daily Rhythm
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.
## Quick Start
1. **Install the skill** and ensure scripts are executable
2. **Configure data sources** (Google Tasks, optional Stripe, Calendar)
3. **Set up cron jobs** for automation
4. **Customize** your focus area and Daily Intention (prayer, affirmation, quote, or centering thought)
5. **Enjoy** automated daily briefings and prompts
## Features
### Daily Automation
- **7:00am**: Background data sync (tasks, ARR)
- **8:30am**: Morning Brief with priority, calendar, weather, tasks
- **10:30pm**: Wind-down prompt to plan tomorrow's priority
- **11:00pm**: Sleep nudge with encouraging words
### Weekly Automation
- **Sunday 8:00pm**: Weekly review for reflection and task planning
### Rich Morning Briefs Include
- 🙏 **Daily Intention** — Prayer, affirmation, quote, or centering thought
- Calendar events
- Focus area
- ARR progress tracking (optional Stripe integration)
- Today's priority (from wind-down or top task)
- Actionable suggestions
- Step-by-step plan
- Helpful resources
- Task list from Google Tasks
- Weather (if configured)
- Open loops from yesterday
## Setup Instructions
### Step 1: Install Dependencies
Ensure Python 3 and required packages:
```bash
pip install google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client stripe
```
### Step 2: Configure Google Tasks
1. Go to [Google Cloud Console](https://console.cloud.google.com/)
2. Create project → Enable **Tasks API**
3. Create OAuth 2.0 credentials (Desktop app)
4. Download `credentials.json` to `~/.openclaw/google-tasks/`
5. Run once to authenticate: `python3 scripts/sync-google-tasks.py`
See [CONFIGURATION.md](references/CONFIGURATION.md) for detailed steps.
### Step 3: Configure Stripe (Optional)
For ARR tracking in morning briefs:
1. Create `.env.stripe` in workspace root:
```
STRIPE_API_KEY=sk_live_...
```
2. Set ARR target in state file
### Step 4: Configure Calendar
Add ICS URL to `TOOLS.md`:
```markdown
### Calendar
- **ICS URL:** `https://calendar.google.com/calendar/ical/...`
```
### Step 5: Set Up Cron Jobs
Option A: System Cron (Traditional)
```bash
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.
### Step 6: Create HEARTBEAT.md
Copy the template from `assets/HEARTBEAT_TEMPLATE.md` to workspace root and customize:
- Daily Intention text (prayer, affirmation, quote, or centering thought)
- Focus area
- ARR target (if using Stripe)
## Workflow Details
### Morning Brief Generation
The brief is generated by:
1. Syncing latest data (tasks, ARR)
2. Reading wind-down priority from `memory/YYYY-MM-DD.md`
3. Fetching calendar from ICS URL
4. Fetching weather (if configured)
5. Compiling all sections into formatted message
### Wind-Down Response Flow
When user replies to 10:30pm prompt:
1. Parse their tomorrow priority
2. Generate actionable suggestions
3. Break into steps
4. Identify resources
5. Ask confirmation
6. Save to `memory/YYYY-MM-DD.md`
7. Include in next morning's brief
### Weekly Review Flow
Sunday 8pm prompt asks reflection questions. When user replies:
1. Summarize their week
2. Identify key priorities
3. Create tasks in Google Tasks
4. Preview Monday's brief
## Customization
### Change Daily Intention
The morning brief opens with a centering section you can customize:
**Examples:**
- **Faith-based**: Prayer, scripture verse, devotional thought
- **Secular**: Affirmation, intention-setting, gratitude practice
- **Quotes**: Inspirational quotes, stoic philosophy, poetry
- **Goals**: Daily mission statement, values reminder
Edit in HEARTBEAT.md or modify the morning brief generation.
### Change Focus Area
Update default focus in HEARTBEAT.md:
```markdown
### Focus
Your primary focus (e.g., "Product growth and customer acquisition")
```
### Adjust Timing
Modify cron expressions:
- `30 8 * * *` = 8:30am daily
- `30 22 * * *` = 10:30pm daily
- `0 23 * * *` = 11:00pm daily
- `0 20 * * 0` = 8:00pm Sundays
### Add Custom Sections
Modify `scripts/morning-brief.sh` to include additional data sources.
## File Structure
```
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
```
## Scripts Reference
### sync-google-tasks.py
Syncs Google Tasks to local JSON. Requires `credentials.json`.
### sync-stripe-arr.py
Calculates ARR from active Stripe subscriptions. Requires `.env.stripe`.
### morning-brief.sh
Orchestrates data sync and brief generation.
## Troubleshooting
**Google Tasks not syncing?**
- Verify `credentials.json` exists
- Check Tasks API is enabled
- Run script manually to see errors
**Stripe ARR not showing?**
- Verify `.env.stripe` with valid API key
- Check for active subscriptions
- Run sync script manually
**Cron jobs not firing?**
- Verify cron is installed: `crontab -l`
- Check script paths are absolute
- Review system logs
See [CONFIGURATION.md](references/CONFIGURATION.md) for detailed troubleshooting.
## Best Practices
1. **Reply to wind-down prompts** for best morning brief experience
2. **Keep tasks updated** in Google Tasks
3. **Do weekly reviews** to stay aligned with goals
4. **Customize focus** as priorities change
5. **Adjust timing** to match your rhythms
## Requirements
- Python 3.7+
- Google Tasks API credentials (for task sync)
- Stripe API key (optional, for ARR tracking)
- Calendar ICS URL (optional, for events)
- Cron or OpenClaw cron system
browser
By
Comments
Sign in to leave a comment