I've created two custom post types, `buildings` and `availabilities`, and added a query on availabilities to select what building it belongs too but I can't seem to get it to save.

    add_action('admin_init', 'p2p2_add_building_metabox');
    
    function p2p2_add_building_metabox(){
    add_meta_box( 
        'building_availability', 
        __('Building', 'bandpress'), 
        'p2p2_building_availability_metabox', 
        'availabilities', 
        'side', 
        'default', 
        array( 'id' => 'p2p2_building') 
    );}
    
    function p2p2_building_availability_metabox($post, $args) {
        wp_nonce_field( plugin_basename( __FILE__ ), 'p2p2_building_nonce' );
        $building_id = get_post_meta($post->ID, 'p2p2_building', true);

        echo "<p>Select The Building of This Availability</p>";
        echo "<select id='p2p2_building' name='p2p2_building'>";
    
        // Query the buildings here
        $query = new WP_Query( 'post_type=building' );
        while ( $query->have_posts() ) {
            $query->the_post();
            $id = get_the_ID();
            $selected = "";

            if ($id == $author_id) {
                $selected = ' selected="selected"';
            }
            echo '<option' . $selected . ' value=' . $id . '>' . get_the_title() . '</option>';
        }

        echo "</select>";
    }
     
    add_action('save_post', 'p2p2_save_building_metabox', 1, 2);
    function p2p2_save_building_metabox($post_id, $post){
        // Don't wanna save this now, right?
        if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
            return;
        
        if ( !isset( $_POST['p2p2_building_nonce'] ) )
            return;
    
        if ( !wp_verify_nonce( $_POST['p2p2_building_nonce'], plugin_basename( __FILE__ ) ) )
            return;

        // We do want to save? Ok!
        $key = 'p2p2_building';
        $value = $_POST["p2p2_building"];
        if ( get_post_meta( $post->ID, $key, FALSE ) ) { // If the custom field already has a value
            update_post_meta( $post->ID, $key, $value );
        } else { // If the custom field doesn't have a value
            add_post_meta( $post->ID, $key, $value );
        }
    
        if ( !$value )
            delete_post_meta( $post->ID, $key ); // Delete if blank
    }