Topic: Activity Scheduling Program

I work in a program that provides activities for a group of about ten elderly people and each week we put together a schedule of the activities, which most of the time consists of the same nine or ten core activities. Some people come in everyday and some just a few times a week, and some of them are happy to do any of the activities while others are more particular. So, what I am looking for is a program that takes the input of who comes on what day and what activities the people on those days like, and from that produce either a random arrangement of the activities or a list of all possible ones.

When I was writing down all the variables the other day, it looked a lot like a logic puzzle, so I suppose I could just brute force my way through the week and figure out all the possibilities, but it probably takes longer than my enthusiasm or attention would last and it seems like there ought to exist a software solution for this sort of problem.

Any ideas?