**Is there a constraint-based scheduling/calendar application?**

This application would be used to coordinate multiple people's schedules. Two basic use cases:

- Multiple people need to schedule a time to meet together. Everyone is busy at different days/times. Each person enters blocks of days/times they cannot meet, and the application suggests the best times to meet given a desired time range.
- Multiple people need to use some common resources for a specific length of time (over some time span like a week), but the exact date/time does not matter. These people enter the resources and time needed, and the application suggests the best way to share these resources. This use case still accounts for people's blocks of busy time.

I imagine this program would be graphical, but other interfaces would be acceptable. Also preferable if web-based/works on both PC's and Mac's, but PC-only/Mac-only solutions are acceptable.

**update:**

- This paper [PDF] from 1991, "The Development of SYLLABUS—An Interactive, Constraint-Based Scheduler for Schools and Colleges," describes a system amazingly close to what I need. Unfortunately, I have been unable to find anything besides a description of the software.
- Based on this description MS Project seems like it should fit my requirements well. However, I have tried to use it before, and it ended up being easier to just figure it out by hand...

**update:**

- I tracked down the author of the SYLLABUS paper mentioned above. He pointed me to the current version of SYLLABUS: http://www.scientia.com/uk/. Unfortunately, the software seems too enterprise-level (i.e. too complex and expensive)
- Also, finding the optimal schedule given constraints is NP-complete. That means the problem grows so fast not enough computers exist to solve it in a reasonable amount of time. Stackoverflow discussion here, which points to a list of software that attempts to tackle this problem..