This program basically uses backtrack searching to assign variables to domain values given a few sets of constraints. Its pretty straightforward. Modifications to the constraints can be made to experiment with this program. For the given sets we get the expected output:
{'A': 'Monday', 'B': 'Tuesday', 'C': 'Wednesday', 'D': 'Wednesday', 'E': 'Monday', 'F': 'Tuesday', 'G': 'Wednesday'}