# Book on and off in the app

Officers book on, log check calls and book off from the Check Calls tab of the ShiftTracker mobile app. You have to accept the shift first, and a four-digit PIN is usually required. Book-on opens an hour before the start, while the check-call and book-off windows are much narrower — and the app hides the button once one closes.

## Where do you do this?

In the app, on the **Check Calls** tab — the middle of your five tabs, between **Schedule** and **Forms**. Signing in takes you to **Shifts** first; **Check Calls** is one tap from there, from the **Me** tab's quick actions, or from the **Go to Check Calls** button on the next-shift card that heads the **Me** tab.

Everything on this page happens on that one screen. The **Shifts** tab is where you accept and decline; it has no book-on button of its own, only a button that sends you to **Check Calls**.

The screen refreshes itself every 30 seconds while you are looking at it, and stops while you are on another tab, so pull down to refresh if you have just come back to it.

## What do you need before you can book on?

Four things, and the app will not tell you about all of them in advance.

1. **The shift has to be accepted.** On the **Shifts** tab, a shift you have not answered shows **Decline** and **Accept**. Tap **Accept**. Declining opens a box asking why — the reason is required, and it is stored on the shift alongside the declined status for your agency to read.
2. **You need your PIN**, if the site asks for one. It is on the **Me** tab, in the card headed **Your check-call PIN**, hidden behind dots until you tap the eye. If it reads **Not set**, ask your agency to issue one — nobody but your agency can.
3. **The shift has to be at a client organisation's site.** Check Calls is built around the site's own settings, so a shift on one of your agency's own sites has none to read. The screen shows **No Active Shift** instead.
4. **It has to be today.** The screen only ever shows one shift: today's, or last night's if it is still running past midnight.

## How do you book on?

1. Open **Check Calls**. If the window is open, the banner reads **Ready to Book On** and a green **Book On** button appears, captioned **Start your shift**.
2. Tap it. If the site requires a PIN, **Enter PIN** opens — four boxes and an optional notes field. Type the digits and tap **Confirm**. The fourth digit does not submit on its own; the **Confirm** tap is deliberate.
3. A short buzz and **Booked on successfully** confirm it.

The window opens **60 minutes** before your start time by default and stays open until your shift's end time, so arriving late is not a problem — you can still book on mid-shift, and the banner changes to **Late Book On — your shift has already started. Book on now.** Before the window opens, the screen shows a quiet line giving both times, in the form *Book on at 07:00 — opens at 06:00*.

Booking on records the exact moment you tapped, moves the shift to in-progress for your agency and the site, and writes a Book-on line into the activity log. It does not record where you were: the app asks for your location on every action, but only a check call actually sends it.

## How do you log a check call?

Once you are booked on, the same screen counts down to each call.

1. Wait for the banner to change. **Waiting for Next Window** with a **Next Check Call** time means it is not time yet. When the window opens you get **Make Check Call**, captioned **Window open now**, and a live countdown to when the window shuts.
2. Tap it, enter your PIN if asked, add a note if you want to, and tap **Confirm**.
3. **Check call submitted successfully**, and the slot in **Check Call Progress** turns green.

Under **Shift Information** the screen tells you what this site expects: badges for **PIN Required**, **GPS Tracked**, **Geofenced** and the interval, plus a **Geofence** row reading **Inside (34m)** or **Outside (210m)** when the site has one drawn.

Being outside it does not stop you. For officers the geofence is recorded and never enforced, even at a site whose administrators set it to block — the call is logged with your distance attached, and you are told *You are 210m from the site. This check call has been logged.* A site that requires location is different: with no GPS fix, the call is refused outright.

The windows themselves, who is told when one is missed, and what a missed call does and does not change, are covered in [Check-call windows and escalation](/docs/concepts/check-call-windows-and-escalation).

## How do you book off?

The same way, with much less room for error.

1. Near the end of your shift the banner changes to **Ready to Book Off** and a red **Book Off** button appears, captioned **End your shift**.
2. Tap it, and enter your PIN if the site asks. Book-off is the one action the PIN is not actually checked against — the app collects it and the server never compares it — so a mistyped PIN here will not stop you.
3. **Booked off successfully**. The shift is marked complete and a Book-off line joins the activity log.

**This is the narrow one.** On the default settings the button is only there from **15 minutes before** your end time until **15 minutes after** it. Outside that half-hour there is no **Book Off** button anywhere in the app, and nothing books you off for you — the automatic book-off only covers an organisation's own employees, not agency officers. If you miss it, tell your agency; they close the shift from their side.

## What if the app refuses?

Every refusal below is the server's, so it reads the same whether you are on the app or the web.

| What you see | What it means |
|---|---|
| *Accept the shift before booking on* | The shift is still pending on the **Shifts** tab. The Check Calls screen does not check this, so **Book On** can appear on a shift you have not accepted. |
| *Book-on is not allowed yet. Please wait until your shift is closer to starting.* | More than an hour early, or past the shift's end time. |
| *You can only book on around the shift date* | The shift is not within a day of today. |
| *Already booked on for this shift* | Somebody already did — often your own double tap. |
| *Book on before booking off* | No book-on on record for this shift. |
| *Book on before checking in* | Same, for a check call. |
| *No active check-call window right now. The window has either passed or has not yet opened.* | The window shut, or has not opened. Nothing you can do from the app closes a slot after the fact — an administrator can log it for you, and it then shows in your activity log tagged **Control Room**. |
| *PIN is required for this shift.* | The site wants a PIN and none was sent. |
| *Invalid PIN. Please try again.* | Wrong digits. Your PIN is on the **Me** tab. |
| *No PIN configured for this officer. Please contact your agency.* | Your record has no PIN. Only your agency can set one. |
| *Location is required for check calls at this site. Please enable location access.* | This site requires GPS and the app could not get a fix. |
| *Check-in is not available for this shift* | The shift is not on a client organisation's site. |

## Can you do this on the web instead?

Technically yes, and in practice you will struggle to find it.

The officer web portal has a **Shift Requests** page at `/officer/shifts` with **Book On**, **Check In** and **Book Off** buttons and its own **Enter your PIN** dialog, calling exactly the same three endpoints as the app. Signing in takes you there: an officer login lands on the officer portal, and every link in its menu goes to a page that exists.

Two differences are worth knowing if you do go there:

- **Book Off is not gated on the web.** The app hides the button outside the half-hour around your end time; the web page shows it for any shift you are booked on to, and the server accepts it. That is the way out of a missed book-off window if you can reach the page.
- **There is no check-call countdown on the web.** The **Check In** button is always offered while you are booked on, with nothing telling you whether a window is open — and the server still refuses it outside one.

Treat the app as the real tool. The web page is a fallback you have to know the address of.

## Who is allowed to do any of this?

You, for your own shifts, and nothing else decides it.

The officer endpoints do not use the platform's permission system at all — no role grid, no organisation membership, no site assignment list. Each request checks three things in order: that you are signed in as an Officer, that the login belongs to an officer record, and that the shift is on your agency's roster line for you. That is the whole authorisation.

This matters because you never join the organisation whose site you are covering. You have no account with them and appear on none of their permission screens, yet the rules you book on under — the PIN requirement, the window lengths, the geofence, the check-call interval — are all read from **their** site and **their** organisation settings, not your agency's. Your agency owns you; the site owns the rules.

Your PIN is the exception your agency does own: it lives on your officer record, is shared across every site you work, and only your agency can reset it.

## If it goes wrong

**The Check Calls tab says "No Active Shift" but I am on shift.** Three causes, in order of likelihood: the shift is not on a client organisation's site; the shift is not dated today or last night; or your roster line has no shift for you at all. Check the **Shifts** tab — if the shift is listed there but Check Calls is empty, it is the first cause, and there is nothing you can do in the app. Ring your agency.

**There is no Book On button and no explanation.** The window has not opened. Look for the grey line giving the time it will. If there is no line either, the shift is already booked off, cancelled, or marked complete.

**I missed the book-off window.** The button is gone and will not come back. Nothing sweeps up after an officer, so the shift stays open until somebody closes it. Contact your agency, and expect the recorded end time to be set by them rather than by you — [Scheduled vs actual vs arbitrated times](/docs/concepts/scheduled-actual-and-arbitrated-times) explains which of the times on a shift ends up being the one that counts.

**I missed a check call.** Nothing on the shift changes, and you cannot log it late. Administrators at the site and coordinators at your agency are alerted after the window closes plus a delay; an administrator can record the call on your behalf afterwards, which is why some rows read **Control Room**.

**The PIN dialog will not accept my PIN.** It compares against the PIN on your officer record exactly, so check the **Me** tab for the current one — an agency can regenerate it, and the app will not warn you that it changed.

**Nothing reminds me a call is due.** Correct. The due-call and book-off reminders that push to an organisation's employees run over employee shifts only and never reach agency officers. Watch the countdown on the Check Calls screen yourself.

## Related

- [Check-call windows and escalation](/docs/concepts/check-call-windows-and-escalation)
- [Scheduled vs actual vs arbitrated times](/docs/concepts/scheduled-actual-and-arbitrated-times)
- [Organisation, agency, client — who is who](/docs/concepts/organisation-agency-client)
- [How a request becomes a rostered shift](/docs/concepts/how-a-request-becomes-a-rostered-shift)
