You should be able to add projects to a Calendar event, similar to how you can add them to Tasks, Revisions, etc.
- Implement PhabricatorProjectInterface on CalendarEvent.
- Implement the transaction and editing UI.
- Implement search support in ApplicationSearch using EdgeLogic.