This was considered when reviewing
Right now calendar has different methods deciding which type of events can be managed at every context. And it seems that they are used in a mixed way.
A proposal to unify uses a little more way done there, see this commit:
And it was a good step, but this issue is a little bit more ambitious:
1) We should review all the methods within calendar that have responsibilities calculating permissions.
2) We should unify uses as much as possible, clearly deprecating the methods that we consider "old".
3) All the combinations should be well covered by automation tests.
4) The methods should be well documented (phpdoc is ok), about which are they correct uses and so on.