Saving Meta Data within Custom Post Type

I would try using the post ID that’s automatically passed to save_events, rather than the $post global. So:

 function save_events( $post_id ){

    if ( !wp_verify_nonce( $_POST['events-nonce'], 'events-nonce' )) {
        return $post_id;
    }

    if ( !current_user_can( 'edit_post', $post_id ))
        return $post_id; 

    update_post_meta($post_id, "events_price", $POST['events_price'] ); 
    update_post_meta($post_id, "events_location", $POST['events_location'] ); 
 }

I’m not sure the global $post is reliable here.

If that fails, check that your nonce is being received correctly.