By 'cap' are you talking about just the nonce check?

The other checks that are used in "handle_ajax_drag_and_drop()" (is that what you meant by 'above'?) all rely on the existence of a post. In the case of creating a new post, there is no post to check permissions against.

I'm not clear on how I would abstract this to the EF_Calendar->init() method since these checks need to be run on a submit-by-submit basis.