I run a few things at once. Software products, side projects, a calendar that fills up faster than I can empty it. Most mornings I'm already mentally three steps into the day before I've had coffee — which means the last thing I want to do is hunt through four different apps just to figure out what those steps actually are.
My old routine was embarrassing. Unlock phone. Open Calendar. Squint at the week view. Close Calendar. Open Weather. Check Nashville forecast. Close Weather. Remember I had a call. Open Calendar again. Same four taps, same mental load, every single morning — before I'd even left the house.
There had to be a better way. What if one text hit my phone every morning at 7 AM with everything I needed? Today's events, tomorrow's preview, Nashville weather. Done. Eyes back up, day started.
I'd been using Claude for other things — writing, coding, research. So I just asked it to help me build this. What happened next is the part I didn't expect.
Starting with "Can You Just Do It For Me?"
My first instinct was the same one I had when I built my personal finance app — I don't want to learn the tool, I want the outcome. So I asked Claude to build me a daily calendar brief that texts me every morning via Apple Shortcuts on my Mac.
Claude came back with a beautiful 9-page Word doc. Step-by-step Shortcuts guide. Every action listed. Color-coded table of the exact workflow. Totally professional. And I looked at it and said: "wait, you can't just do all the steps for me?"
That question changed everything. Turns out Apple Shortcuts is a GUI app — Claude runs in a Linux sandbox and can't click around in my apps for me. But it could write a shell script that does the exact same thing and runs automatically in the background. No Shortcuts app. No GUI. Just a script that fires at 7 AM every day without me touching anything.
"The Shortcuts app is a GUI tool on your Mac, and I'm running in a Linux sandbox — I can't reach across and click buttons in your apps. But there's a better option I can do completely for you."
That's the moment I realized I wasn't building a Shortcut. I was building something better.
What It Actually Built — The Tech Under the Hood
Claude generated three files. A main shell script, a launchd scheduler, and a one-command installer. Here's what each one does:
The main script
daily_brief.sh does three things: it talks to my Mac's Calendar app via AppleScript to pull today's and tomorrow's events, hits a weather API for Nashville conditions, then composes everything into a single text message and sends it through the Messages app — again via AppleScript. No third-party services. No accounts to manage. Just native Apple plumbing.
The scheduler
com.travis.dailybrief.plist is a launchd config — basically macOS's built-in job scheduler. It tells my Mac to run the script every day at 7:00 AM. Set it and forget it, exactly the way I like things.
The installer
setup.sh does all the wiring. It checks that I've added my phone number, copies the script to the right folder, fills in the correct paths, and registers the 7 AM automation with one command. The whole thing took about 90 seconds to install.
bash setup.sh
# ✅ All done! Scheduled for 7:00 AM daily.
# Test it now with: bash ~/scripts/daily_brief.sh
The Part Nobody Shows You — Debugging With Claude in Real Time
I'd be lying if I said it worked perfectly on the first run. It didn't. But debugging with Claude in the chat was genuinely different from Googling error messages at midnight. Every time something broke, I just pasted the Terminal output back in and we fixed it together.
Problem 1: Calendar permissions. macOS was silently blocking Terminal from reading my Calendar. The script just hung. Fix: System Settings → Privacy & Security → Calendars → toggle Terminal on. One time, done.
Problem 2: Weather returned nothing. The original script used wttr.in as the weather source. Turns out my network blocks it. Claude switched to Open-Meteo — a free, no-API-key weather service — and wrote a small Python helper to parse the JSON response and convert Celsius to Fahrenheit. I didn't ask for that last part. It just did it.
Problem 3: Calendar was hanging. The script was iterating through every calendar on my Mac — including Siri Suggestions, Scheduled Reminders, and US Holidays — which are slow system calendars that don't have real events. One quick patch to target only my Google Calendar (tcrxx0@gmail.com) and it went from hanging to running in seconds.
Problem 4: The Mac was asleep. The first morning the automation was supposed to fire, nothing came through. No text, no errors, no logs. The Mac was asleep at 7 AM and launchd never got a chance to run. The fix was a one-time Terminal command to schedule an automatic wake event at 6:58 AM — two minutes before the brief goes out. The Mac wakes silently, fires the script, and you'd never know it happened. Full explainer on this below.
Four problems. Four fixes. None of them required me to know what AppleScript or launchd were before this conversation.
The One Step Everyone Skips — Keeping Your Computer Awake
This is the gotcha nobody mentions in automation tutorials. If your computer is asleep when the scheduled job fires, nothing runs. No error. No retry. Just silence. I found out the hard way when my first morning brief never arrived.
The fix is to schedule your computer to automatically wake up a couple of minutes before the script runs. Both Mac and Windows have built-in ways to do this — no third-party software required.
One Terminal command using pmset — macOS's built-in power management tool. Run it once and you're done.
sudo pmset repeat wake MTWRFSU 06:58:00
Then verify it took:
pmset -g sched
# Repeating power events:
# wake at 6:58AM Every day
A few notes: sudo will ask for your password once — it's only needed to write the schedule, not to run it each morning. The day string is MTWRFSU (Monday through Sunday — note U for Sunday, not S). If it says "Some days," re-run the command; the flags didn't apply correctly.
Windows handles this through Task Scheduler — no command line needed. The key is checking one box most people miss.
- Press Win + S, search for Task Scheduler, open it
- Click Create Basic Task in the right panel
- Name it Morning Wake, click Next
- Set trigger to Daily, time 6:58 AM, click Next
- For Action, choose Start a program and point it to your script
- Click Finish, then find the task in the list and open its Properties
- Go to the Conditions tab
- Check "Wake the computer to run this task"
- Click OK
That checkbox is the whole trick. Without it, Task Scheduler will wait until the computer is already awake — which defeats the purpose entirely. Also make sure Sleep is enabled (not Hibernate) in your power settings, as Windows can only wake from sleep, not hibernate.
Both platforms will wake silently — no login screen, no noise, nothing visible. The script runs in the background and the computer may go back to sleep immediately after. You'll just get a text.
What Lands in My Phone at 7 AM
Here's a real example of what I wake up to:
Clean. Everything I need. Nothing I don't. Day oriented before I've finished my first cup of coffee.
You Don't Need to Be a Developer to Build This Stuff
I build software apps — I'm comfortable in a terminal — but this wasn't a developer project. It was a conversation. I described what I wanted, Claude wrote it, I ran the commands it gave me, and when things broke I just said what broke. That loop — describe, run, report back — is available to anyone.
The same way I built my personal finance app because Mint didn't work the way my brain does, I built this because no existing widget gave me the right information in the right format at the right time. Generic tools are built for everyone. That means they're optimized for no one.
The total cost of this automation: $0. The time investment: one conversation and maybe 20 minutes of running Terminal commands. It will text me every morning for as long as my Mac is plugged in — which is always, because it lives on my desk at home.
If the tool doesn't exist, build it. With Claude, "building it" is mostly just knowing what you want.
What I'd Add Next
The brief is useful right now, but I've already got a list of upgrades on deck:
- App revenue line — a one-liner on how my software products performed the previous day, pulled straight from Stripe
- Top priority task — grab the first due item from my task manager and surface it at the top of the brief so I start the day with intention, not inbox
- Overnight news digest — a two-sentence summary of anything relevant to the industries I'm building in, sourced from an RSS feed
- Fiancée's schedule — she'd probably appreciate being included in the "tomorrow" section before I accidentally double-book her evening
The shell script is already built. Adding any of these is just another section in the same script. That's the beauty of owning the tool — the roadmap is yours.
Want me to build something like this for your workflow?
I work with individuals and small teams to automate the repetitive parts of their day. If you've got a morning routine that could use a script, let's talk.
Get in touch →