Master calendar

This is the same problem posed in the post here: Polymorphism would be nice: a way to join tables with common columns under a parent or generalized table

You can see the first comment I made specifically with 4 different approaches to this problem.