Schedules — Plan Skeds + DX Events
New in V1.9.9: a unified tab in the logbook for managing planned radio appointments. Two kinds of entries, same UI:
- Skeds — 1:1 appointments with a specific counterpart call ("Sunday 14:30 UTC, HB9XYZ, antenna comparison")
- DX Events — announced DXpeditions, net slots, contest windows ("3D2A Fiji, EU window 18:00 → 22:00 UTC")
Accessible as the lower tab-bar section "Schedules" in the logbook (Standard and Contest logs).
Create a Schedule
Toolbar at the top → "+ New":
| Field | Description |
|---|---|
| Type | Sked or DX Event (segmented control at the top) |
| Title | Optional, e.g. "Antenna Test" or "3D2A Fiji" |
| Call | Counterpart station (sked) or DX call (DX event). Auto-uppercase |
| Start (UTC) | Date + time, required field |
| End (UTC) | DX events only, optional — window enabled via toggle |
| Frequency | In MHz (e.g. 14.205). As you type, the band is set automatically |
| Band | Auto from freq, manually overridable (160m – 23cm) |
| Mode | SSB · CW · FM · AM · RTTY · FT8 · FT4 · JT65 · JS8 · PSK31 · DIGITAL |
| Status | planned / done / missed / canceled |
| Reminder | none · 10 min · 30 min · 1 hr · 1 day before (macOS notification) |
| Notes | Free text |
At least title or call must be set — otherwise the Save button is disabled.
Card Actions
Each schedule entry appears as a card with:
| Element | Function |
|---|---|
| Type icon | Person symbol (sked) or globe (DX event) |
| Countdown | Live: "in 1h 23m", "Tomorrow 09:00", "running now" — color-coded |
| Status badge | Visible when not "planned"; card dimmed when done/missed |
| 📡 Log Now | Opens the QSO form pre-filled (call · freq · band · mode · note) and sends a CAT QSY to the radio, if connected |
| 🔍 Cluster Filter | DX events only: sets the DX cluster search field to call + band filter |
| ✏ Edit | A sheet opens pre-filled |
| ▾ Status | Quick menu: planned / done / missed / canceled |
| 🗑 Trash | Delete without confirmation |
"Log Now" + CAT
If your TRX is connected via CAT, it jumps automatically to the planned frequency and into the planned mode when you click "Log Now" — you only need to type the RST values and log.
Sorting
Order in the list:
- Currently running DX events at the very top (with a green "running now" tag)
- Future appointments ascending by start time (nearest at the top)
- Past appointments descending (most recent at the top), dimmed
- Canceled appointments at the very bottom
Filters
Pill filters above the list:
- Type: All · Skeds · DX Events
- Time: All times · Today · This week · Future · Past
Filters combine independently. The counter in the top right shows "X of Y" visible/total entries.
macOS Notifications
If you choose a reminder when creating an entry (e.g. "10 min before"), macOS sends a system notification at the lead time:
Sked with HB9XYZ
In 10 min · 14.205 MHz · 20m · SSB
Permission: The first time, macOS asks for permission. If you decline, the schedule is still saved — only the notification is skipped.
Behavior on changes:
- Edit a schedule → the old notification is replaced by a new one
- Set status to "done/missed/canceled" → the notification is canceled
- Delete a schedule → the notification is canceled
- Restart the app → all active schedules are re-queued at launch (rehydrate)
Notifications need a signed app build
In the DMG release, notifications work normally. In an unsigned dev build (swift run from source) macOS silently denies the permission request — the code path is safe (no crash), but there's no real notification.
Where Are Schedules Stored?
A JSON file under ~/Documents/HAM-Tools/Cache/schedules.json. The format is human-readable (ISO dates, pretty-printed) — you can open the file with any text editor in case you ever need a bulk import or export.
Common Workflows
Arranged Sked with a Radio Friend
- + New → type "Sked", type the call, date + UTC time, frequency
- Note: "presence check before going abroad" or similar
- Reminder: "10 min before"
- Create — the macOS notification fires at the trigger
Mark a DXpedition Window
- + New → type "DX Event", title "3D2A Fiji", call "3D2A"
- Start = window start UTC, turn on "set window end", End = window close
- Frequency + band + mode from the DX newsletter
- At the start of the window: click "Cluster Filter" → the DX cluster shows only 3D2A spots on the planned band
After a Successful QSO
- Card → Status ▾ → "done" — the card is dimmed, the notification (if not yet fired) is canceled
- On failure: "missed" — same UI reaction
- If the schedule is called off: "canceled" — ends up at the very bottom of the sorting
Related Modules
- Logbook — where "Log Now" lands
- DX Cluster — where "Cluster Filter" takes effect
- CAT / Radio Control — prerequisite for QSY auto-tune
- Settings — the Schedules tab is always active, no settings of its own