This problem shows -SAT works for any problem with binary choices and pairwise constraints. The structure fits perfectly. What matters: identify the boolean variable (morning vs afternoon, red vs blue, include vs exclude) and translate each constraint into a clause.
The rest is mechanical. -SAT handles scheduling, assignment, resource allocation, graph coloring, and more. If you have binary choices and OR constraints, think -SAT.