Daily Morning Brief Cron Job
Run a script every weekday at 7am — pull your calendar, weather, and top news into a digest.
What this schedule does
The expression 0 7 * * 1-5 fires at exactly 7:00 AM every Monday through Friday. The five fields mean: minute=0, hour=7, any day of month, any month, days 1–5 (Mon–Fri). It never runs on weekends.
This is the canonical "morning brief" schedule — run a script that aggregates information you need at the start of each work day: calendar events, weather forecast, unread emails, top news, Slack summaries, or overnight metric changes.
What to put in the script
A morning brief script typically calls several APIs and formats the output as an email, Slack message, or markdown file. Common data sources:
- Google Calendar API — today's meetings
- OpenWeatherMap API — local forecast
- Hacker News / RSS feed — top 5 tech stories
- Your analytics API — yesterday's key metrics
- GitHub — open PRs assigned to you
Pipe the output into mail, a Slack webhook, or write to a file that a dashboard reads.
Platform snippets
# crontab -e 0 7 * * 1-5 /path/to/morning-brief.sh
on:
schedule:
- cron: '0 7 * * 1-5' # UTC — adjust for your timezone
jobs:
morning-brief:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run morning brief
run: python scripts/morning_brief.py
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
# EventBridge cron (6 fields — adds year, UTC) cron(0 7 ? * MON-FRI *)
apiVersion: batch/v1
kind: CronJob
metadata:
name: morning-brief
spec:
schedule: "0 7 * * 1-5"
jobTemplate:
spec:
template:
spec:
containers:
- name: brief
image: your-image:latest
command: ["python", "morning_brief.py"]
restartPolicy: OnFailure
Timezone note
Standard crontab uses the system timezone. GitHub Actions and AWS EventBridge run in UTC — if you're on US Eastern time (UTC-5), use 0 12 * * 1-5 to fire at 7am ET. Kubernetes 1.27+ supports spec.timeZone: "America/New_York".