Availability ​
Engineers use the Availability calendar screen to indicate which days they're available to receive job offers. This calendar-based interface is accessible from the bottom tab navigation and allows toggling availability up to 3 months in advance.
Availability Statuses ​
Each day on the calendar can have one of the following statuses:
| Status | Display | Description |
|---|---|---|
| Unknown | Empty (no icon) | No availability set. Tap to mark as available. |
| Available | Search icon | Actively searching for jobs. The system will send job offers. |
| Partially Booked | Tick icon | Some jobs assigned but still available for more offers. |
| Fully Booked | Tick icon | All job slots filled for the day. No more offers will be sent. |
| Banned | Block icon | System-banned due to too many declined job offers. Cannot change availability. |
| Banned Manually | Block no icon | Manager has manually blocked availability for this day. |
Restrictions ​
- Past dates: Cannot be edited. An alert explains this limitation.
- Future limit: Availability can only be set up to 3 months in advance. A grey overlay appears when navigating beyond this range.
- Booked days: Days with assigned jobs cannot have availability removed. Tap to view the jobs instead.
- Banned days: If you've declined too many jobs, the day becomes locked and you cannot change it.
Pull to Refresh ​
The availability calendar supports pull-to-refresh to fetch the latest availability data and job assignments from the server.
Technical Notes ​
API Endpoints ​
GET /engineers/availabilities- Fetch availability for a date rangePOST /engineers/availabilities- Mark a day as availableDELETE /engineers/availabilities/{id}- Remove availability
Changes use optimistic updates for a responsive UI, with automatic rollback if the API call fails.