You have tasks and time slots. Each task can be completed in certain time slots based on availability constraints. Schedule the maximum number of tasks such that each time slot handles at most one task. Model as bipartite matching: tasks are group , time slots are group .
An edge means task can use slot . The maximum matching gives you the maximum number of tasks you can schedule without conflicts.