Staff Confirmation is ticked
If Staff confirmation required is ticked, shift will remain Pending (red) until allocated staff accepts the shift. You can also choose not to tick this box. In that case shift will move to Booked (green) state.
Staff is doubled booked
Shift will also be in Pending (red) if staff is booked in another program/shift. Second program saved will show "Pending" status. When you go inside the shift you will find double booked staff in red. (as illustrated in image below)
Staff is on Leave.
Once staff's leave gets approved, all his shifts will automatically turn red.