macos
sidebar_position: 1
macOS Guide
Comprehensive guide for setting up and using Schedule Management on macOS.
Installation
Prerequisites
- macOS 10.14 (Mojave) or later
- Python 3.12 or higher
- Administrator privileges for system service setup
Using the Installation Script
The easiest way to install on macOS:
# Clone the repository
git clone https://github.com/sergiudm/schedule_management.git
cd schedule_management
# Run the installation script
./install.sh
The script will:
- Install Python dependencies
- Create the application directory (
~/schedule_management/) - Set up configuration files
- Install the launchd service for auto-start
- Configure the CLI tool
Manual Installation
If you prefer manual control:
# Install Python package
pip install schedule-management
# Create directories
mkdir -p ~/schedule_management/config
# Copy configuration templates
cp config/settings_template.toml ~/schedule_management/config/settings.toml
cp config/week_schedule_template.toml ~/schedule_management/config/odd_weeks.toml
cp config/week_schedule_template.toml ~/schedule_management/config/even_weeks.toml
# Set up shell profile
echo 'export PATH="$HOME/schedule_management:$PATH"' >> ~/.zshrc
echo 'export REMINDER_CONFIG_DIR="$HOME/schedule_management/config"' >> ~/.zshrc
echo 'alias reminder="$HOME/schedule_management/reminder"' >> ~/.zshrc
# Reload shell
source ~/.zshrc
System Service Setup
LaunchAgent Configuration
The installation creates a LaunchAgent that runs the reminder service automatically:
Location: ~/Library/LaunchAgents/com.sergiudm.schedule_management.plist
Contents:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.sergiudm.schedule_management</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/python3</string>
<string>/Users/YOUR_USERNAME/schedule_management/reminder_macos.py</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardOutPath</key>
<string>/Users/YOUR_USERNAME/schedule_management/logs/stdout.log</string>
<key>StandardErrorPath</key>
<string>/Users/YOUR_USERNAME/schedule_management/logs/stderr.log</string>
</dict>
</plist>
Managing the Service
# Load the service (start automatically)
launchctl load ~/Library/LaunchAgents/com.sergiudm.schedule_management.plist
# Unload the service (stop automatically)
launchctl unload ~/Library/LaunchAgents/com.sergiudm.schedule_management.plist
# Check if service is running
launchctl list | grep schedule
# View service logs
tail -f ~/schedule_management/logs/stdout.log
tail -f ~/schedule_management/logs/stderr.log
macOS-Specific Configuration
Sound Files
macOS includes many built-in system sounds:
[settings]
# Popular system sounds
sound_file = "/System/Library/Sounds/Ping.aiff"
sound_file = "/System/Library/Sounds/Glass.aiff"
sound_file = "/System/Library/Sounds/Hero.aiff"
sound_file = "/System/Library/Sounds/Pop.aiff"
sound_file = "/System/Library/Sounds/Basso.aiff"
sound_file = "/System/Library/Sounds/Funk.aiff"
sound_file = "/System/Library/Sounds/Morse.aiff"
sound_file = "/System/Library/Sounds/Tink.aiff"
# Custom sound files
sound_file = "/Users/yourname/Music/notification.wav"
Notification Settings
Schedule Management uses macOS native notifications. Configure notification settings:
- System Preferences → Notifications & Focus
- Find Python or Terminal in the app list
- Configure:
- Alert style: Alerts (for persistent notifications)
- Allow notifications: On
- Sounds: On
- Badges: On
Security & Privacy
Grant necessary permissions:
- System Preferences → Security & Privacy → Privacy
- Accessibility: Add Terminal/iTerm if needed
- Automation: Allow Python to control System Events
Troubleshooting macOS Issues
Service Won't Start
# Check service