1
From the job
Click Assign team (or Reassign once someone is already on it). Pick the people. Click save.
2
From the visit
On the visit, open Assign team. The same people can be on one visit. Each of them must be free for that slot when you care about conflicts.
3
A whole crew
In the visit dialog, Crew assigns everyone on that named roster. You can still add or remove people underneath. Crews are created under Settings → Team → Crews.
Why someone is unavailable
Each unavailable person has a reason. You can still save.
If you save over a real overlap, Scheduling conflict asks you to confirm. Save anyway double-books on purpose. A softer prompt covers working hours, time off, or another calendar block. Cancel leaves the previous team.
Availability checks run for fixed-time visits. A floating visit (a duration, no clock time) can still be assigned. The dialog says checks run once the time is fixed.
From the Jobs list you can select several jobs and use Bulk actions → Assign team… to put the same people on all of them. That does not book a time. It only sets who is on the job.
Crew availability on the schedule (under Options, or the Crews control) shows each crew as Free, Partial, Booked, or Off for the day. A person is Free, Booked, Off, or Not working. It is a view of who is free. It does not assign anyone until you book the visit. The map and the unscheduled list hide while that view is open. See Dispatch and the map.
Nobody on the visit is not the same as the job being on hold. Hold is Hold, cancel, or delete a job.
