Base Hangar Works — homemade, not corporate

ScheduleApp — user guide

Thanks for actually giving this a shot — this guide covers everything currently in the app.

Not an official company system. If the app ever disagrees with the real published roster, trust the real one and let me know — I'd rather hear about a mismatch than have you miss a shift over it.

What this is

ScheduleApp shows your monthly work schedule on your phone, pulled from the same roster file that's normally only available as a PDF. It reads that file, finds your row, and shows it two ways — a source-style row (just like the PDF) and a normal calendar grid — so you can always double-check it against the original if anything looks off.

It also has a few extras bolted on: shift alarms, a mandatory end-of-shift toolbox-check reminder, home-screen widgets, and a payslip calculator that estimates your pay straight from that same schedule.

The app only talks to my own private schedule server — nothing else, no ads, no analytics, no data wandering off anywhere you haven't agreed to.

Check the what's new page any time to see what's changed recently.

1. Installing

  1. Grab the APK from the downloads page.
  2. Your phone will probably ask whether to allow installs from this source the first time — totally normal for anything outside the Play Store, just allow it for this one app.
  3. Open the APK and install.

2. First-time setup — pairing

The first time you open the app, it needs to pair with the schedule server once.

  1. On the Import tab, ask me for a pairing code — good for 15 minutes, works once.
  2. Enter (or scan) it when prompted.
  3. Once paired, that's it — the app keeps a token on your phone and you won't see this again.

3. Getting your schedule

Once paired, there are two ways to get your schedule onto your phone. Either's fine — the difference is how much you double-check along the way.

The normal way (recommended the first time):

  1. Press Check files on server on the Import tab — always a manual tap, the app never checks on its own.
  2. Pick the revision you want (usually the newest) and download it.
  3. Go to My PDfs, find the file, tap Confirm.
  4. Search for your name and select yourself.
  5. Compare the shown schedule against the actual PDF crop on screen, confirm it matches.
  6. When it asks "Set as your active schedule?", tap Yes.

The shortcut ("one-click roster"):

On the Import screen there's a name field and a slide-to-activate button ("show me the real magic"). Type your name, slide it, wait a few seconds — it fetches the latest schedule, finds your name, and activates it automatically, no comparison step. Once it's done, tap Open roster tab to see the result.

It's faster, but it skips the manual comparison — the Roster screen will show a small "not verified by you" note until you go through the normal Confirm flow at least once for that same schedule. Use whichever you like; if you go the shortcut route, it's worth glancing at the real PDF yourself afterward.

4. Viewing your roster

The Roster tab shows your active schedule two ways — a horizontal source row (matching the PDF layout) and a normal month grid. Switch between them freely; both show exactly the same raw values, nothing translated or guessed. A gear icon up top jumps back to My PDfs if you need a different revision.

5. Payslip (salary calculator)

On the Roster tab, a PAYSLIP button sits next to your Norm/Working hours/Overtime summary — tap it to open a full payslip-style breakdown for that month.

A switch at the top picks which mode fits how you're employed:

Your hourly rate, Pension II percentage, night-shift multiplier, overtime/holiday multipliers, and any bonuses/withdrawals are remembered between opens, the same way your other app settings are; everything else recalculates fresh from that month's schedule every time you open it. Reset to computed defaults throws away manual edits and starts over from those pre-filled values.

Heads up: it doesn't currently account for vacation or sick-leave days.

6. Understanding your codes (Rules tab)

Each code on your schedule (numbers, TR, ill, VAC, and so on) maps to a meaning — hours, category, whether it counts as a working day. The Rules tab shows this dictionary and lets you fix or add an entry if something's wrong or missing. The app never guesses at an unknown code — it'll flag it instead of quietly assuming.

The same tab also keeps an editable list of Estonian public holidays (pre-filled, add/delete/reset-to-default) — that's what the payslip calculator above uses to work out holiday pay.

7. Alarms

The Alarms tab has separate cards for Day, Night, and Training (TR) shifts, since they can start at different times — the actual start time comes from the Rules tab (either a per-code override or the shared Day/Night/Training default), not from this tab. For each shift type you can:

Android will probably ask for a few permissions the first time you set an alarm (exact alarms, notifications, a battery-optimization exemption) — grant all three, or the alarm might just quietly not go off, which defeats the point.

8. Toolbox checks

If your schedule includes working (Day/Night) shifts, the Toolbox tab reminds you to check your toolbox before leaving — by default, 30 minutes before your shift ends. (Training days skip this one — no physical tools involved.)

Three ways to confirm a check, whichever's in front of you at the time:

You can optionally attach a photo as proof, either right away or later, from the entries list.

Two more things live on that tab:

9. Home-screen widgets

Long-press an empty spot on your home screen → Widgets → find ScheduleApp → pick one of two: a small next-day/toolbox/alarm strip, or a full roster calendar grid. They update automatically whenever your schedule, rules, or alarms change — no need to reopen the app.

Troubleshooting

Feedback

Found a bug, or something's confusing? Message me directly — [add your contact here] — I'd genuinely rather hear about problems now than have them surface once more people are using it.

ScheduleApp · Base Hangar Works · internal test build