← All Automations
Flow details

Morning Brief

Daily morning briefing with calendar, weather, and optional audio

v1.0.0 by cluka schedule 30 7 * * * Lobster workflow available
dailybriefingcalendarweatherttsproductivity

What this flow does

  1. **Syncs your calendar** - Pulls latest events from CalDAV
  2. **Gets weather** - Current conditions and forecast for your location
  3. **Composes briefing** - Human-readable summary
  4. **Generates audio** (optional) - TTS version you can listen to while getting ready

How it runs

1. sync-calendar
calendar
2. get-agenda
calendar
3. get-weather
weather
4. get-forecast
weather
5. compose-briefing
template
6. generate-audio
tts
7. deliver
notify

Inputs & configuration

location
Your city for weather · default: Tel Aviv
calendar_days
Days ahead to check calendar · default: 2
voice_output
Generate audio briefing · default: true

README configuration

config:
  location: "Tel Aviv"      # Your city
  calendar_days: 2          # How many days ahead to show
  voice_output: true        # Generate audio version

Schedule & output

Cron: 30 7 * * *

Default: 7:30am daily. Adjust the cron expression to match your wake time:

trigger:
  schedule: "0 6 * * *"  # 6:00am

Example output

Good morning! Here's your briefing for today.

Weather in Tel Aviv: ☀️ +22°C 65% ↑8km/h

You have 3 events coming up:
- 09:00: Team standup
- 11:30: Product review
- 14:00: 1:1 with Sarah

Have a great day!

Lobster workflow

Lobster workflow: morning brief Danny's actual morning briefing — calendar, weather, competitors, Iran/Israel Usage:

1. work-calendar
2. personal-calendar
3. weather
4. competitor-intel
5. iran-check
6. open-loops
7. compose
View workflow YAML
# Lobster workflow: morning-brief
# Danny's actual morning briefing — calendar, weather, competitors, Iran/Israel
#
# Usage:
#   lobster run --file workflow.yaml
#   lobster run --file workflow.yaml --args-json '{"location":"Tel Aviv"}'

name: morning-brief
description: "Daily morning briefing: calendar, weather, competitors, open loops"

args:
  location:
    default: "Tel Aviv"

steps:
  - id: work-calendar
    command: |
      timeout 10 env TZ="Asia/Jerusalem" /data/clawd/.venv-gcal/bin/gcalcli agenda --nocolor today today 2>/dev/null \
        || echo "Work calendar unavailable (needs re-auth)"

  - id: personal-calendar
    command: |
      timeout 20 /data/clawd/.local/bin/uv run --with khal -- khal -c /data/clawd/.config/khal/config list today 1d 2>/dev/null \
        || echo "Personal calendar unavailable"

  - id: weather
    command: |
      timeout 5 curl -sf "wttr.in/${location}?format=%l:+%c+%t+%w+%h+humidity&lang=en" 2>/dev/null \
        || echo "Weather unavailable"

  - id: competitor-intel
    command: |
      timeout 45 node /data/skills/search-x/scripts/search.js --days 1 "Lovable OR Bolt.new OR Tempo Labs OR cursor AI" 2>/dev/null \
        | head -40 || echo "Competitor search unavailable"

  - id: iran-check
    command: |
      timeout 15 node /data/clawd/scripts/iran-israel-monitor.js 2>/dev/null | grep -E "^(•|📋|\*\*)" | head -8 \
        || echo "Iran monitor unavailable"

  - id: open-loops
    command: |
      head -20 /data/clawd/NOW.md 2>/dev/null || echo "No pending items"

  - id: compose
    command: |
      echo "📋 MORNING BRIEF"
      echo ""
      echo "🗓️ WORK CALENDAR"
      echo "$work_cal"
      echo ""
      echo "📅 PERSONAL"
      echo "$pers_cal"
      echo ""
      echo "🌤️ WEATHER — ${location}"
      echo "$weather_data"
      echo ""
      echo "📰 COMPETITORS (24h)"
      echo "$competitors"
      echo ""
      echo "🇮🇷 IRAN/ISRAEL"
      echo "$iran"
      echo ""
      echo "📌 OPEN LOOPS"
      echo "$loops"
    env:
      work_cal: "$work-calendar.stdout"
      pers_cal: "$personal-calendar.stdout"
      weather_data: "$weather.stdout"
      competitors: "$competitor-intel.stdout"
      iran: "$iran-check.stdout"
      loops: "$open-loops.stdout"

README details

Start your day with a personalized briefing including your calendar events, weather, and optionally delivered as audio.

What It Does

  1. **Syncs your calendar** - Pulls latest events from CalDAV
  2. **Gets weather** - Current conditions and forecast for your location
  3. **Composes briefing** - Human-readable summary
  4. **Generates audio** (optional) - TTS version you can listen to while getting ready

Requirements

CapabilityExample Skills
`calendar`caldav-calendar
`weather`weather
`tts`elevenlabs-tts, sag

Configuration

config:
  location: "Tel Aviv"      # Your city
  calendar_days: 2          # How many days ahead to show
  voice_output: true        # Generate audio version

Schedule

Default: 7:30am daily. Adjust the cron expression to match your wake time:

trigger:
  schedule: "0 6 * * *"  # 6:00am

Example Output

Good morning! Here's your briefing for today.

Weather in Tel Aviv: ☀️ +22°C 65% ↑8km/h

You have 3 events coming up:
- 09:00: Team standup
- 11:30: Product review
- 14:00: 1:1 with Sarah

Have a great day!

Tips

Author

Created by Cluka 🦞