По умолчанию стандартный календарь вордпресса выводин только сообщения со статусом «publish«.
И так как запранированные страницы вносятся со статусом «future«, они не появляются в календаре.

Давайте попробуем это исправить (медот костыльный)

Для начала создадим фаил новой страницы, которая быдет нам выводить запланированные страницы и накоторую мы будем переадресовывать пользователей для просмотра этиъ самых событий.

КОД СТРАНИЦЫ

Код:

<?php
/*
Template Name: Планируемые события
*/
?>
<?php get_header(); ?>
<?php
        // получаем данные по дате
	$content_year = get_query_var( year );
	$content_month = get_query_var( month );
	$content_day = get_query_var( day );

	$my_posts = new WP_Query();

	// делаем запрос в бд
	$myposts = $my_posts->query( array(
		'post_type' => 'post',
		'post_status' => 'future',
		'year' => $content_year,
		'monthnum' => $content_month,
		'day' => $content_day,
	) );

	// обрабатываем полученный результат
	foreach( $myposts as $pst ){
		echo '<a href="' . esc_html( $pst->guid ) . '"><h3>' . esc_html( $pst->post_title ) . '</h3></a>';
		echo '<div>Дата: ' . substr($pst->post_date, 0, 10) . '</div>';
	}
?>
<?php get_footer(); ?>

Далее в админке создаем страницу (назовем страницу к примеру Планируемые события).
Выбираем созданный нами шаблон для этой страницы.

Уже можно попробовать вывести запранированные события по ссылке
/?page_id=айди_вашей_страницы&year=2018&month=10&day=3
(дату, год, меся, день, меняйте на необходимый)

Далее исправим сам календарь.
Открываем фаил wp-includes/general-template.php
Ищем функцию function get_calendar

В ней ищем:

Код:

$previous = $wpdb->get_row("SELECT MONTH(post_date) AS month, YEAR(post_date) AS year
		FROM $wpdb->posts
		WHERE post_date < '$thisyear-$thismonth-01'
		AND post_type = 'post' AND post_status = 'publish'
			ORDER BY post_date DESC
			LIMIT 1");
	$next = $wpdb->get_row("SELECT MONTH(post_date) AS month, YEAR(post_date) AS year
		FROM $wpdb->posts
		WHERE post_date > '$thisyear-$thismonth-{$last_day} 23:59:59'
		AND post_type = 'post' AND post_status = 'publish'
			ORDER BY post_date ASC
			LIMIT 1");

Заменяем на:

Код:

$previous = $wpdb->get_row("SELECT MONTH(post_date) AS month, YEAR(post_date) AS year
		FROM $wpdb->posts
		WHERE (post_date < '$thisyear-$thismonth-01'
		AND post_type = 'post' AND post_status = 'publish') OR (post_date < '$thisyear-$thismonth-01'
		AND post_type = 'post' AND post_status = 'future')
			ORDER BY post_date DESC
			LIMIT 1");
	$next = $wpdb->get_row("SELECT MONTH(post_date) AS month, YEAR(post_date) AS year
		FROM $wpdb->posts
		WHERE (post_date > '$thisyear-$thismonth-{$last_day} 23:59:59'
		AND post_type = 'post' AND post_status = 'publish') OR (post_date > '$thisyear-$thismonth-{$last_day} 23:59:59'
		AND post_type = 'post' AND post_status = 'future')
			ORDER BY post_date ASC
			LIMIT 1");

Этим мы настроили вывод кнопок перелистывания месяцев.

Далее настроим вывод дней.

Находим:

Код:

$dayswithposts = $wpdb->get_results("SELECT DISTINCT DAYOFMONTH(post_date)
		FROM $wpdb->posts WHERE post_date >= '{$thisyear}-{$thismonth}-01 00:00:00'
		AND post_date <= '{$thisyear}-{$thismonth}-{$last_day} 23:59:59'
		AND post_type = 'post' AND post_status = 'publish'", ARRAY_N);

Заменяем на:

Код:

$dayswithposts = $wpdb->get_results("SELECT DISTINCT DAYOFMONTH(post_date)
		FROM $wpdb->posts WHERE (post_date >= '{$thisyear}-{$thismonth}-01 00:00:00'
		AND post_date <= '{$thisyear}-{$thismonth}-{$last_day} 23:59:59'
		AND post_type = 'post' AND post_status = 'publish') OR (post_date >= '{$thisyear}-{$thismonth}-01 00:00:00'
		AND post_date <= '{$thisyear}-{$thismonth}-{$last_day} 23:59:59'
		AND post_type = 'post' AND post_status = 'future')", ARRAY_N);

Осталось заменить ссылки «запланированных» дней на нашу созданную страницу.

Находим:

Код:

if ( in_array( $day, $daywithpost ) ) {
			// any posts today?
			$date_format = date( _x( 'F j, Y', 'daily archives date format' ), strtotime( "{$thisyear}-{$thismonth}-{$day}" ) );
			/* translators: Post calendar label. 1: Date */
			$label = sprintf( __( 'Posts published on %s' ), $date_format );
			$calendar_output .= sprintf(
				'<a href="%s" aria-label="%s">%s</a>',
				get_day_link( $thisyear, $thismonth, $day ),
				esc_attr( $label ),
				$day
			);
		} else {
			$calendar_output .= $day;
		}

Заменяем на:

Код:

if ( in_array( $day, $daywithpost ) ) {
			// any posts today?
			$date_format = date( _x( 'F j, Y', 'daily archives date format' ), strtotime( "{$thisyear}-{$thismonth}-{$day}" ) );
			/* translators: Post calendar label. 1: Date */
			$label = sprintf( __( 'Posts published on %s' ), $date_format );
			if( time() < strtotime( "{$thisyear}-{$thismonth}-{$day}" ) ){
				$calendar_output .= sprintf(
					'<a href="%s" aria-label="%s">%s</a>',
					"/?page_id=АЙДИ_ВАШЕЙ_СТРАНИЦЫ&year=" . $thisyear . "&month=" . $thismonth . "&day=" . $day,
					esc_attr( $label ),
					$day
				);
			} else {
				$calendar_output .= sprintf(
					'<a href="%s" aria-label="%s">%s</a>',
					get_day_link( $thisyear, $thismonth, $day ),
					esc_attr( $label ),
					$day
				);
			}
		} else {
			$calendar_output .= $day;
		}

В принципе вот и все. Остается только стилизовать стриницу под свой дизайн и готово)