In your examples you have seperate tables for private, recurring, and shared events. Is there any reason why you can not combine these all into one single table.
Do you have a full example that includes all these features that can be used as a template where one can simply remove features not wanted.