The Calendar methods in the PSI support calendar exceptions, not all enterprise calendar functionality. See, for example, the
ReadCalendars method. If you find which calendar a project uses (with
Project.ReadProject), and which calendar an assigned resource uses, you could use the
Calendar.ReadCalendars and the Resource.ReadResources methods to find all of the relevant calendar exceptions, assume a standard work week, and then calculate the finish date.
The problem comes with work weeks, which the PSI does not return. Doesn't sound very simple to me, and would not work if your work week assumption is wrong. The PSI was not designed to replace the scheduling done by Project Professional 2007.
--Jim
Jim Corbin [MSFT]