I think a Public/Non-public calendar separation is useful in most cases.
For example, a drama-class will have non-public rehearsals and public performances, a school/company will have non-public meetings and public festivities, etcetera.
It would be nice if every calendar_item could be set either Public or Non_public, unless it is easier (or more secure) to have a Public Calendar and a Community Calendar apart.