Here's what I would be inclined to try:
Code:
tbl_People
PeopleID PeopleType PeopleFN PeopleLN (other fields....)
1 T Mickey Mouse
2 T Donald Duck
3 S Foghorn Leghorn
4 S Bugs Bunny
5 S Daffy Duck
tbl_Locations
LocationID LocationName (other fields...)
1 North Library
2 South Library
3 West Library
4 East Library
tbl_Availability
AvailabilityID (autonumber)
LocationID (number)
PeopleID (number)
AvMon (yes/no)
AvMonMorn (yes/no)
AvMonAft (yes/no)
AvMonNight (yes/no)
AvTue (yes/no)
AvTueMorn (yes/no)
AvTueAft (yes/no)
AvTueNight (yes/no)
AvWed (yes/no)
AvWedMorn (yes/no)
AvWedAft (yes/no)
AvWedNight (yes/no)
AvThu (yes/no)
AvThuMorn (yes/no)
AvThuAft (yes/no)
AvThuNight (yes/no)
AvFri (yes/no)
AvFriMorn (yes/no)
AvFriAft (yes/no)
AvFriNight (yes/no)
AvSat (yes/no)
AvSatMorn (yes/no)
AvSatAft (yes/no)
AvSatNight (yes/no)
AvSun (yes/no)
AvSunMorn (yes/no)
AvSunAft (yes/no)
AvSunNight (yes/no)
This is probably not the way I would do it if I were designing it but if you're unsure how to continue I think it will work out better for you.
You would have to build a query that would count the matches between pairs (i.e. make sure they have at least two av<day> checkboxes in common, and make sure the time slots for each day have a time slot in common) then sort the results by date. Depending on how you built the query you may have the same person suggested as a match multiple times (for instance if both tutor and student are available at three different libraries each and they have two in common you would get two records if their times and days matched).