Using URL input in Custom Meta Boxes

@narayanprusty wrote an interesting article on custom meta boxes, which I can’t now reply to as it’s too old. I’m having difficulty adding a URL input type to my custom meta box, It won’t save the information I put in. I was wondering if either he or someone else could walk me through the things I need to be aware of when using this input type in a custom meta box.

Thanks in advance!

Adding Custom Meta Boxes to the WordPress Admin Interface

Link added for reference - TechnoBear.

Thought it might help to show my working:

/*Custom Meta Box for Single Events Page*/
function events_meta_box_markup($object)
{
    wp_nonce_field(basename(__FILE__), "events-meta-box-nonce");

    ?>
        <table>
			<tbody>
				<tr>
					<td><label for="price">Price:</label></td>
					<td><input name="price" type="text" value="<?php echo get_post_meta($object->ID, "price", true); ?>"> </td>
				</tr>
				<tr>
					<td><label for="ticket-url">Ticket URL:</label></td>
					<td><input name="ticket-url" type="url" value="<?php echo get_post_meta($object->ID, "ticket-url", true); ?>"></td>
				</tr>
			</tbody>
			</table>
			
<?php
}

function add_events_meta_box()
{
    add_meta_box("events-meta-box", "Price & Ticket Link", "events_meta_box_markup", "wtf-events", "normal", "core", null);
}

add_action("add_meta_boxes", "add_events_meta_box");

function save_events_meta_box($post_id, $post, $update)
{
    if (!isset($_POST["events-meta-box-nonce"]) || !wp_verify_nonce($_POST["events-meta-box-nonce"], basename(__FILE__)))
        return $post_id;

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

    if(defined("DOING_AUTOSAVE") && DOING_AUTOSAVE)
        return $post_id;

    $slug = "wtf-events";
    if($slug != $post->post_type)
        return $post_id;

    $events_meta_box_price_value = "";
	$events_meta_box_event_url_value = "";

    if(isset($_POST["price"]))
    {
        $events_meta_box_price_value = $_POST["price"];
    }   
    update_post_meta($post_id, "price", $events_meta_box_price_value);

    if(isset($_POST["ticket-url"]))
    {
        $events_meta_box_event_url_value = $_POST["ticket-url"];
    }   
    update_post_meta($post_id, "ticket-url", $events_meta_box_event_url_value);

}

add_action("save_post", "save_events_meta_box", 10, 3);

I think I’ve figured it out. I need to use esc_attr() to allow it to be saved. So now my question is which esc should I use so that the URL can be called on the custom post page?