One of my absolute must-download apps whenever I setup a new MacOS machine is Alfred. It’s a customizable app launcher that helps me more efficiently use my computer. I frequently use its many features, from clipboard history and snippets management, to downloading workflows to quickly find my IP address, or even writing my own plugins.
Each morning at work, we kick off the day with our daily stand-up meeting — a quick way for us to let our teammates know what we did yesterday, what we’re doing today and any blockers we’re encountering.
I use Obsidian (see previously) to write these notes. Traditionally, creating a daily note is kind of an annoying process for me:
- Open Obsidian
- Right click on my “DSUs” folder
- Create a new note based on my “daily stand-up” template
- Replace the place holder text with today
- Start typing my notes
There has to be a better way.
*Cue suspenseful music*
There is!
We can utilize Alfred’s nifty keyword action. I will trigger the action using the keyword “dsu“. From there, we will run a bash script (thank you, ChatGPT) which will do a few things:
- Check if a file with today’s date already exists. If so, open it! (Because we probably want to reference it or update it.
- If it doesn’t exist, create a new markdown file with the following format: YYYY-MM-DD.md
- Update the file contents to match (my) specific / preferred layout for the DSU notes
- Open it.
# Get the current year dynamically
CURRENT_YEAR=$(date +"%Y")
# Define the base directory
BASE_DIR="/Users/daves/Documents/Obsidian/Standup Meeting Notes"
# Target directory for the current year
TARGET_DIR="${BASE_DIR}/${CURRENT_YEAR}/"
# Create the directory for the current year if it doesn't exist
mkdir -p "$TARGET_DIR"
# Get the current date in the required format
CURRENT_DATE=$(date +"%Y-%m-%d %A")
FILENAME="${CURRENT_DATE} Standup.md"
# Full path for the new Markdown file
FILE_PATH="${TARGET_DIR}${FILENAME}"
# Check if the file already exists
if [ -f "$FILE_PATH" ]; then
echo "File already exists: $FILE_PATH"
else
# Create the new Markdown file and populate it with the template
cat <<EOF > "$FILE_PATH"
Y:
Y:
T:
T:
B: None
---
## Action Items
-
---
## Summary
-
---
## Tags
#standup
<!-- ${CURRENT_DATE} -->
EOF
echo "Created: $FILE_PATH"
fi
# Open the file in Sublime Text
/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl "$FILE_PATH"
When we run that script via the Alfred action, it looks like this:

Sweet!
(One thing to note: I open the file with Sublime here, but since it still creates the file in my Obsidian directory, all my notes are still synced.)