Hi Liam,
You can use snippets. Using the generalization as an input parameter, you can add a data view and select the specialization. You may need to add a $currentObject = empty check at certain places (depending on the content of your snippet)
There are various planning/calendar widgets available in the marketplace. Not sure what exactly is your expectation or requirements