Hi,
What I would suggest is that you leverage resource type inheritance for your page components. The structure would look something like this:
/apps/myco/components/page/generic-calendar-page <-- this one has your custom dialog specifying title, date, and location
/apps/myco/components/page/one-column-calendar-page <-- this one has a super type of myco/components/page/generic-calendar-page (and no dialog)
/apps/myco/components/page/two-column-calendar-page <-- this one has a super type of myco/components/page/generic-calendar-page (and no dialog)
/apps/myco/components/page/three-column-calendar-page <-- this one has a super type of myco/components/page/generic-calendar-page (and no dialog)
Your templates would point to the one, two, and three column page components. There's no template which points directly at generic-calendar-page -- it's only function here is to provide a dialog used by the more specific layout page components. In a sense, it is similar to an abstract base class in Java.
Regards,
Justin
NOTE - with the new Responsive Grid feature in AEM 6.1, you may not need these individual "column" page components. But this is really a separate question from the one you asked.