Installation
This guide details how to install and configure Schedule Management on your system.
Compatibility Note: This tool is currently optimized for macOS (via
launchd) and Linux. Windows support is on the roadmap.
Prerequisites
Before proceeding, ensure you have the following installed:
- Python 3.12+: Download Python
- Git: Download Git
- Terminal: Any standard terminal emulator (Terminal.app, iTerm2, etc.)
Installation Methods
We provide an automated installer for convenience, but manual installation is fully supported for users who prefer granular control.
Method 1: Automated Installer (Recommended)
The install.sh script handles dependency installation, configuration scaffolding, and service registration in one go.
-
Clone the repository:
git clone https://github.com/sergiudm/schedule-everything.git
cd schedule-everything -
Run the installer:
./install.shThe script will:
- Install the Python package and dependencies.
- Create the
~/schedule_managementdirectory structure. - Copy default configuration templates.
- Register the background service (on macOS).
-
Finalize Setup: Follow the on-screen instructions to load the service. Typically, this involves:
launchctl load ~/Library/LaunchAgents/com.sergiudm.schedule_management.plist
Method 2: Manual Installation
For advanced users or those integrating into existing environments.
-
Clone the repository:
git clone https://github.com/sergiudm/schedule_management.git
cd schedule_management -
Install the Package: We recommend installing in editable mode (
-e) to easily pull updates.pip install -e .Tip: Consider using a virtual environment (
venvorconda) to isolate dependencies. -
Create Configuration Directory:
mkdir -p ~/schedule_management/config -
Initialize Config Files: Copy the templates to your config directory:
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 -
Configure Shell Environment: Add the following to your shell profile (
~/.zshrc,~/.bash_profile, etc.) to access thereminderCLI:export PATH="$HOME/schedule_management:$PATH"
export REMINDER_CONFIG_DIR="$HOME/schedule_management/config"
alias reminder="$HOME/schedule_management/reminder" -
Apply Changes:
source ~/.zshrc # or your specific profile file
Method 3: PyPI Installation
Note: This method installs the library code but requires manual configuration setup.
pip install schedule-management
After installation, follow steps 3-6 from the "Manual Installation" section above.
Verifying Installation
Confirm that everything is working correctly.
-
Check CLI:
reminder --helpExpected output: A list of available commands.
-
Check Service Status (macOS):
launchctl list | grep scheduleExpected output: A process ID and status code (usually 0).
-
View Schedule:
reminder statusExpected output: A summary of upcoming events or "No upcoming events".
Uninstallation
To completely remove the application:
-
Unload the Service:
launchctl unload ~/Library/LaunchAgents/com.sergiudm.schedule_management.plist -
Remove Configuration & Data:
rm -rf "$HOME/schedule_management" -
Remove Python Package:
pip uninstall schedule-management
Troubleshooting
- "Command not found: reminder": Ensure you have added the alias and exports to your shell profile and sourced it.
- Service not starting: Check the logs (standard error/output) or try running
reminder updateto refresh the service definition.