In Kimball Group Reader, on page 339, they talk about "Multi-Enterprise Calendar Dimensions" which is what I believe you are trying to implement.
Yes, this is what I'm trying to implement.
In the Kimball example, they have a Base Calendar Dimension, with 1 row per day in it, then there is a Snowflake Calendar Subdimension as an outrigger, which has 1 row per day per Organization in it, thus the Subdimension has a higher cardinality than the base dimension and needs to be filtered to query it properly.
What does it mean to be properly filtered? As I have already explained, I have set the Calendar attribute to be non-aggregatable with a default set. Therefore it is not possible to choose more than one, and when not being acted on, there is a default. Yet this does not seem adequate.
In your example, DimDate looks like it is the 1 row per day table, and DimCalendar is the multiple rows per day table, so you need some kind of key or code in DimCalendar to be able to filter it based on which of your many Corporate Calendars you wish to represent for a given report or cube. How do you distinguish different corporate calendars in the DimCalendar table?
Each calendar has a different key and name, and each calendar has a complete set of the same dates, although of course the hierarchies above this level will differ.