Configuration Overview
Schedule Management uses TOML (Tom's Obvious, Minimal Language) for all configuration. This design choice ensures that your schedule is human-readable, easy to edit, and version-control friendly.
Directory Structure
By default, the system looks for configuration in ~/schedule_management/config/.
config/
├── .active_config # Plain-text id of the active config set
├── synced_schedule.toml # Accepted daily task overlay from `rmd sync`
├── tasks/
│ ├── tasks.json # Auto-generated task database (do not edit manually)
│ ├── tasks.log # Task history log
│ ├── record.json # Habit completion records
│ └── procrastinate.json # Deferred urgent tasks with first defer date
├── user_config_0/
│ ├── settings.toml
│ ├── odd_weeks.toml
│ ├── even_weeks.toml
│ ├── habits.toml
│ ├── profile.md
│ └── ddl.json
└── user_config_1/ # Optional later snapshot created by accepted edits
└── ...
rmd setup stores schedule files in versioned user_config_n directories.
The .active_config marker selects which snapshot is live. Shared task data
and the rmd sync overlay stay at the config-root level.
The Core Files
1. Settings (settings.toml)
Think of this as your dictionary. You define what a "pomodoro" is, what sound to play, and what "bedtime" means. You don't schedule when things happen here, only what they are.
2. Schedules (odd_weeks.toml / even_weeks.toml)
Think of these as your calendar. You map specific times to the definitions you created in settings.toml.
- Odd Weeks: Active during ISO weeks 1, 3, 5, etc.
- Even Weeks: Active during ISO weeks 2, 4, 6, etc.
3. Tasks (tasks.json)
A simple JSON store for your todo list. Managed exclusively via the rmd CLI tool.
4. Versioned Config Sets (user_config_n)
Each accepted schedule modification creates a new config snapshot instead of
overwriting the previous one. Use rmd switch <id> to move between them.
5. Daily Sync Overlay (synced_schedule.toml)
An optional TOML overlay generated by rmd sync. It stores the accepted
task titles for today's pomodoro/potato blocks without rewriting your base
odd_weeks.toml or even_weeks.toml templates.
Syntax Reference
Defining an Event
The basic syntax is "HH:MM" = "value".
| Type | Syntax | Example |
|---|---|---|
| Reference | "HH:MM" = "key" | "09:00" = "pomodoro" |
| Direct Message | "HH:MM" = "text" | "12:00" = "Lunch time! 🥗" |
| Custom Title | "HH:MM" = { block="key", title="text" } | "14:00" = { block="meeting", title="Sync" } |
rmd sync generates the same custom-title form for accepted task assignments, for example:
[schedule]
"09:00" = { block = "pomodoro", title = "Finish release notes" }
Sections
[monday]through[sunday]: Events specific to that day.[common]: Events that occur on every day of the week (unless overridden).
Validation & Safety
The system includes built-in checks to prevent common scheduling errors:
- Syntax Check: Ensures valid TOML format.
- Reference Check: Verifies that every scheduled "pomodoro" is actually defined in
settings.toml. - Overlap Detection: Warns if you schedule a 60-minute meeting at 09:00 and another event at 09:30.
Next Steps
- Settings Reference: Detailed guide to
settings.toml. - Weekly Schedules: How to structure your week.
- Templates: Copy-pasteable examples.