How can I delete nodes when an arbitrary date has past?
You can use the hook_cron to solve your problem

function mymodule_cron(){
  _mymodule_delete_nodes();
}

function _mymodule_delete_nodes(){
  //select all nodes from type X where date expired
  //node_delete($nid);
}


See hook_cron for further information