Is there a way to cancel a node deletion using rules? I have a node type that represents a phone call.  The user can schedule a call, then record notes about the call.  I want to give the user the ability to deleted these call nodes, but only if the call has not happened yet.  Is there a way to review a call node (using rules) the cancel the delete operation if specific criteria fail?  

This could also be used to make an "Are you sure?" option for node deletes.
You should be able to do this via the conditions field in the rules module. Unsure how to create an 'are you sure' option, but you could certainly stop them from doing it with rules.

There might be better solutions, but here's what I'd do if I wanted to achieve what you are doing.

Install Flags and Rules module. Create flag to appear on Content Type 'Phone call' called 'Delete this call'.

In rules create two rules. One called Delete call, the other called 'display message about unable to delete call'.

First rule:

Triggered on action - node is flagged
Conditions - Entity has field call date/time (whatever the field is called)
           - Data comparison - select the date/time field, then is greater than +1 minute.

Then action - unpublish content

For the second rule do the same but change second condition to less than - 1 minute. Then as the action do 'display message on the site' and select message as 'Unable to delete calls that have passed'.

That should work.