
00- Welcome to my Macstock Session!
Thanks for joining me for this 90-minute workshop! Today, we’re going to build a complete automation system that handles the essential (but not always engaging) digital infrastructure of your work, so you can focus on creating.
We’ll be using this page throughout our time together, so don’t close the window, and maybe even consider bookmarking it.
If you want to participate in the fun, please download the tools below to your Mac before we begin. Don’t worry about learning them yet, we’ll walk through everything step by step.
Essential Tools
- Keyboard Maestro– The automation engine that connects everything, there is a free trial.
- Drafts– The free version works for what we are doing today. This will be our template engine and text processing hub.
- Things 3– This is my preferred task and project management tool. There is a 15-day free trial available for new users.
For Planning and Brainstorming
- MindNode– My visual mind mapping tool of choice. There is a free trial.
- Coggle– A web-based mind mapping alternative with a free option. I used to use this in my classroom. Nice, but not as good as MindNode.
01- Pick Your Project
Think of projects you do regularly; it could be something at work or home that involves creating files, organizing information, or managing tasks.
Things like: planning events, creating reports, organizing travel, starting new clients, or preparing presentations.
As you think of possible ideas, add them as new nodes on your mind map. Aim for 5 to 10 initial ideas.
Your backup option: If nothing comes to mind, we’ll use “planning to attend MacStock next year” as our example.
Then, pick one or two of your favorites and start developing those ideas by making subnodes for Tasks and Folders, and start populating them with as much detail as you can come up with.
02- Creating a Project Template for Your Tasks
Now we’ll turn your project idea into a working task template that automatically creates organized projects in Things.
- Copy the sample TaskPaper template below and paste it into a new draft in Drafts.
- Using your mind map, customize the template for your project. Replace the sample tasks with your own, adjust the sections, and update the dates to match your timeline.
- Install the Things Parser action in Drafts.
- Test your template by running the Things Parser action. Your project should appear in Things with all tasks, dates, and organization intact.
- Need help with formatting? Check out the complete documentation for advanced features and syntax.
✈️ Attend Macstock: @area(home) @when(1 week before %Flight_Date_Out%) @due(%Flight_Date_Out%)
This will not create areas or tags in Things that do not already exist.
Registration:
- Register for Macstock
- Forward Flight Information to Flighty @when(%Flight_Date_Out%) @tags(app, travel)
Packing:
- Pack a Plane Bag @when(%Flight_Date_Out%)
- Reading Book
- Activity Book
- Mechanical Pencil
- iPad
- Headphones
Day of Flight:
- Take Photo of Parking Spot @when(%Flight_Date_Out%)
- Buy Snacks and Water for the Plane @when(%Flight_Date_Out%)
At Conference:
- Update Camera Time Setting @when(%Flight_Date_Out%)
Home:
- Unpack @when(%Flight_Date_Back%)
- Update Flight Prep Checklist @when(1 day after %Flight_Date_Back%)
drafts://open?uuid=B98DA000-E336-44B5-8DC8-E8DA325150ED
03- Defining Your Project Folders
Time to plan the folder structure that will house all your project files.
- Return to your mind map and expand it with your complete folder hierarchy. Think nested; what main folders do you need, and what subfolders go inside them?
- Consider any markdown files or text files you’d want automatically created in specific folders. Planning documents? Meeting notes? README files?
- Customize the shell script below using one of these approaches:
- DIY approach: Copy the script into a text editor and modify the folder names and file paths yourself
- AI-assisted approach: Copy the script into a new conversation with Claude (or your preferred AI) and ask for help updating it to match your folder structure. See the sample prompt below.
- Test your script to make sure it creates the folders and files exactly where you want them.
Sample AI Prompt
I have a shell script that creates folders and markdown files for project organization. I'd like your help updating it to match my specific project needs.
Here's my current project structure from my mind map:
[Paste your folder hierarchy here]
And here are the markdown files I'd like created:
[List the specific files and which folders they should go in]
Please update this shell script to create my custom folder structure instead of the current one:
[Paste the shell script here]
Keep the same documentation style and make sure the script is well-commented so I can modify it further if needed.
Sample Shell Script
#!/bin/bash
# =============================================================================
# Macstock Conference Project Structure Creator
# Version: 2.2
# Created by: Mike Burke (https://www.themikeburke.com) and Claude (Anthropic)
# Last Updated: 2025-07-08
#
# License: MIT
# Copyright (c) 2025 Mike Burke
# Permission is hereby granted to use, copy, modify, and share this script freely,
# provided the above copyright and attribution notices are preserved.
# Full license text: https://opensource.org/licenses/MIT
#
# Description:
# Automates the creation of a standardized folder structure for Macstock conference attendance.
# This script creates a comprehensive organizational system that supports conference planning,
# session note-taking, and travel logistics management.
#
# =============================================================================
# Using Keyboard Maestro Variables in Shell Scripts:
# To use a Keyboard Maestro variable, reference it with $KMVAR_VariableName
# Example: PROJECT_NAME="$KMVAR_ProjectName"
# Then use the variable: MAIN_FOLDER="${BASE_DIR}/${PROJECT_NAME}"
#
# Current script uses hard-coded values for simplicity and as a concrete example,
# but can be easily modified to use KM variables for dynamic project naming.
# =============================================================================
#
# Functionality:
# 1. Creates a main project folder named "Macstock"
# 2. Generates a complete subfolder structure:
# a. Registration Paperwork folder with Travel Info markdown template
# b. Session Notes organized by day (Friday, Saturday, Sunday)
# c. Two numbered session folders per day with markdown templates
# 3. Creates pre-configured Markdown template files:
# - Travel Info template with comprehensive travel planning sections
# - Individual session note templates for structured learning capture
#
# Folder Structure Created:
# Macstock/
# ├── Registration Paperwork/
# │ └── Travel Info.md
# └── Session Notes/
# ├── Friday/
# │ ├── Session 1/
# │ │ └── Session 1.md
# │ └── Session 2/
# │ └── Session 2.md
# ├── Saturday/
# │ ├── Session 1/
# │ │ └── Session 1.md
# │ └── Session 2/
# │ └── Session 2.md
# └── Sunday/
# ├── Session 1/
# │ └── Session 1.md
# └── Session 2/
# └── Session 2.md
#
# Usage:
# 1. Make the script executable: chmod +x macstock_structure.sh
# 2. Run the script: ./macstock_structure.sh
# 3. The complete project structure will be created on your Desktop
#
# Customization Notes:
# - Users can easily add more session folders by copying the existing structure
# - Additional folders (Networking, Resources, etc.) can be added to the main directory
# - Markdown templates can be customized for specific conference needs
# - The numbered session structure provides clear organization but can be modified
# - To use dynamic naming, replace hard-coded values with Keyboard Maestro variables
#
# Note: Script uses $HOME/Desktop to create folders on any user's desktop regardless
# of username. The structure is designed to be simple yet comprehensive for conference
# attendance and can be easily extended based on individual needs.
# =============================================================================
# Set the conference name directly
CONFERENCE_NAME="Macstock"
# To use a Keyboard Maestro variable instead:
# CONFERENCE_NAME="$KMVAR_ConferenceName"
# Define the base directory where the conference folder will be created (Desktop of current user)
BASE_DIR="$HOME/Desktop"
# To use a Keyboard Maestro variable for location:
# BASE_DIR="$KMVAR_ProjectLocation"
# Create the main conference folder
MAIN_FOLDER="${BASE_DIR}/${CONFERENCE_NAME}"
mkdir "$MAIN_FOLDER"
# Define the main subfolders
mkdir -p "$MAIN_FOLDER/Registration Paperwork"
mkdir -p "$MAIN_FOLDER/Session Notes"
# Define the days and create session folders
DAYS=("Friday" "Saturday" "Sunday")
# To use dynamic days from Keyboard Maestro:
# DAYS=("$KMVAR_Day1" "$KMVAR_Day2" "$KMVAR_Day3")
# Create daily session folders with numbered sessions
for day in "${DAYS[@]}"
do
DAY_FOLDER="$MAIN_FOLDER/Session Notes/$day"
mkdir -p "$DAY_FOLDER"
# Create Session 1 and Session 2 folders for each day
for session_num in 1 2
do
SESSION_FOLDER="$DAY_FOLDER/Session $session_num"
mkdir -p "$SESSION_FOLDER"
# Create session markdown file in each session folder
cat << EOF > "$SESSION_FOLDER/Session $session_num.md"
# Session Information
## Session Title
-
## Presenter(s)
-
## Date & Time
-
# Session Notes
## Key Takeaways
-
## Important Concepts
-
## Tools/Software Mentioned
-
## Resources & Links
-
# Action Items
## Follow-up Tasks
-
## Tools to Explore
-
## People to Contact
-
# Additional Notes
-
EOF
done
done
# Content for 'Travel Info.md'
cat << EOF > "$MAIN_FOLDER/Registration Paperwork/Travel Info.md"
# Travel Information
## Flight Details
### Outbound Flight
- Date:
- Flight Number:
- Departure Time:
- Departure Airport:
- Arrival Time:
- Arrival Airport:
- Confirmation Number:
### Return Flight
- Date:
- Flight Number:
- Departure Time:
- Departure Airport:
- Arrival Time:
- Arrival Airport:
- Confirmation Number:
## Accommodation
### Hotel Information
- Hotel Name:
- Address:
- Check-in Date:
- Check-out Date:
- Confirmation Number:
- Phone Number:
## Transportation
### Airport to Hotel
- Method:
- Details:
- Cost:
### Local Transportation
- Rental Car:
- Public Transit:
- Rideshare Apps:
## Conference Details
### Registration
- Confirmation Number:
- Badge Name:
- Special Requirements:
### Schedule
- Conference Dates:
- Venue Address:
- Venue Phone:
## Emergency Contacts
- Emergency Contact Name:
- Emergency Contact Phone:
- Travel Insurance:
- Medical Information:
## Packing Checklist
### Electronics
- [ ] Laptop
- [ ] Chargers
- [ ] Power Bank
- [ ] Cables
- [ ] Camera
### Documents
- [ ] ID/Passport
- [ ] Flight Confirmations
- [ ] Hotel Confirmation
- [ ] Conference Registration
- [ ] Travel Insurance
### Personal Items
- [ ] Clothing
- [ ] Toiletries
- [ ] Medications
- [ ] Business Cards
## Notes
-
EOF
echo "Conference folder structure and templates for 'Macstock' created successfully on Desktop."
echo "Structure includes:"
echo "- Registration Paperwork with Travel Info template"
echo "- Session Notes organized by day (Friday, Saturday, Sunday)"
echo "- 2 numbered session folders per day with note templates"
echo "- All folders created at: $MAIN_FOLDER"
04- Keyboard Maestro Macro Assembly
Time to connect everything together with the automation engine that will run your complete workflow.
- Download the sample Keyboard Maestro macro and double-click to install it in Keyboard Maestro.
- Open the macro in Keyboard Maestro and update it with your customized shell script from the previous section.
- In Drafts, copy the UUID link from your project template (the long link that starts with
drafts://open?uuid=
) and paste it into the macro where indicated. - Update the prompt questions in the macro to match any custom variables you used in your project template (like conference name, dates, etc.).
- Test your complete automation: run the macro, answer the prompts, and watch as it creates your folder structure, markdown files, and Things project all at once.
- Make any final adjustments to timing, prompts, or workflow as needed.
Now you have a complete automation system that handles all your project setup with just a few clicks!
See You Next Time
Congratulations! You’ve built a complete automation system that will save you time and mental energy on every future project.
Keep the momentum going:
- Find all my links (YouTube, blog, social profiles) at themikeburke.com/links
- Share your feedback about today’s workshop using this form
- Have questions or want to connect? Use my contact form
Now, go take your new automation for a spin on a real project, then think about what other repetitive tasks in your life could benefit from this approach. The possibilities are endless!
Thanks for spending your time learning and building with me today. Now go create something amazing!