Include scheduled ( future ) posts in WordPress post navigation ( previous_post_link, next_post_link )

You can do this by using the get_{$adjacent}_post_where filter.

Basically all we are doing is replacing the part of the query that says “find published posts” with “find published or future posts”.

/**
 * Amend the 'WHERE' clause in the SQL query to find an adjacent post
 *
 * @param required string $where  The default 'WHERE' clause in the query
 * @param boolean $in_same_term   Whether or not the adjacent post should be in the same taxonomy term (not required here)
 * @param array $excluded_terms   The ID's of terms that should be excluded (not required here)
 * @return string                 The updated, custom 'WHERE' clause
 */
add_filter('get_previous_post_where', 'my_add_future_posts_to_nav', 3, 99);
add_filter('get_next_post_where', 'my_add_future_posts_to_nav', 3, 99);
function my_add_future_posts_to_nav($where, $in_same_term, $excluded_terms){

    return str_replace("p.post_status="publish"", "p.post_status IN ('publish', 'future')", $where);

}

While I can’t seem to find any Filter Reference for get_{$adjacent}_post_where, there is a Developer Code Reference which you may find useful.