Project Server 2007 developer can use PSI to read global calender. Here is the example how to read global calender with PSI:
CalendarDataSet cal = ProjectServer.wsCalendar.ReadCalendars(GetByNameFilter(Name), false);
private string GetByUIDFilter(Guid UID)
{
CalendarDataSet cal = new CalendarDataSet();
Filter f = new Filter();
f.FilterTableName = cal.Calendars.TableName;
f.Fields.Add(new PSLibrary.Filter.Field(cal.Calendars.CAL_UIDColumn.ColumnName);
foreach (DataColumn c in cal.CalendarExceptions.Columns)
f.Fields.Add(new PSLibrary.Filter.Field(c.Table.TableName, c.ColumnName));
}
f.Criteria = new PSLibrary.Filter.FieldOperator(PSLibrary.Filter.FieldOperationType.Equal,
cal.Calendars.CAL_UIDColumn.ColumnName, UID);
return f.GetXml();