A command-line tool to send daily notifications for actual tasks found in markdown files.
- 📅 Filter tasks by date (today, yesterday, tomorrow, or custom ranges).
 - 📧 Send notifications via email or output to stdout.
 - 📝 Support for Obsidian Tasks emoji format.
 - 🔍 Process multiple markdown files and whole directories.
 
Download the latest binary from the releases page.
go install github.com/powerman/md-tasks-notify@latestUsage of md-tasks-notify:
  -email string
        Send output to this email address instead of stdout
  -from-day int
        Start day relative to today (-1 for yesterday, 0 for today)
  -to-day int
        End day relative to today (1 for tomorrow)
Send daily notifications for tasks due today:
md-tasks-notify -email user@example.com path/to/*-tasks.mdOutput to stdout (useful for testing or sending to another tool):
md-tasks-notify path/to/tasks_dir/Include past due tasks (yesterday) and future tasks (tomorrow):
md-tasks-notify -from-day -1 -to-day 1 -email user@example.com ~/notes/Get tasks from yesterday only:
md-tasks-notify -from-day -1 -to-day -1 ~/notes/Process tasks from stdin (useful to get output without file names):
cat *-tasks.md | md-tasks-notify -email user@example.comAdd to your crontab to receive daily notifications at 9 AM:
0 9 * * * md-tasks-notify -email your@email.com /path/to/notes/This tool primarily supports the Tasks Emoji Format used by the Obsidian Tasks plugin.
- [ ] Undone task
- [x] Completed task
- [/] In progress task
- [-] Cancelled task- [ ] Review documentation 📅 2024-01-15
- [ ] Call client ⏳ 2024-01-15
- [ ] Submit report 🛫 2024-01-10 📅 2024-01-15- 📅 Due date
 - ⏳ Scheduled date
 - 🛫 Start date
 - ... there are many more date emojis available, but this tool only handles the ones listed above.
 
project-tasks.md:
# Project Tasks
- [x] Setup project ✅ 2024-01-10
- [ ] Write documentation 📅 2024-01-15
- [ ] Review code ⏳ 2024-01-15
- [ ] Deploy to staging 📅 2024-01-20
- [-] Old feature ❌ 2024-01-05personal-tasks.md:
# Personal Tasks
- [ ] Buy groceries 📅 2024-01-15
- [ ] Call dentist ⏳ 2024-01-16When run on 2024-01-15 with default settings:
project-tasks.md:
- [ ] Write documentation 📅 2024-01-15
- [ ] Review code ⏳ 2024-01-15
personal-tasks.md:
- [ ] Buy groceries 📅 2024-01-15
To send notifications via email, you need to configure SMTP settings through environment variables:
export SMTP_FROM="First Last <your-email@gmail.com>"
export SMTP_HOST=smtp.gmail.com
export SMTP_PORT=587
export SMTP_USERNAME=your-email@gmail.com
export SMTP_PASSWORD=your-app-password