Fala @mazuh, tudo bem? Vou tentar te dar uma luz de como proceder.
Você pode fazer o seguinte:
- Cria um campo extra (meta field) para data de início e fim do evento (como data Y-M-D)
- Na sua QUERY do WP, filtre por essas datas.
Porém tem um detalhe na sua lógica que deve ser revisto. Agendas geralmente mostram o evento mesmo antes de sua data de acontecimento. Assim as pessoas podem "abrir espaço em suas agendas" para ir ao evento. Além disso em um site, os usuários esperam poder ver mais detalhes do evento.
Assim acho que você deve publicá-los imediatamente e não fazer agendamentos. Para filtrar as datas basta você fazer um MERGE QUERY para filtrar e remover os itens que tiverem passado da data encerramento.
No loop da agenda para o Archive/Category você usa assim:
$get_data = date('Y-m-d'); //GET DATA ATUAL
global $wp_query;
//Filtrar posts com data final maior ou igual a data atual
query_posts(array_merge(
$wp_query->query,array(
'posts_per_page' => -1,
'meta_key' => 'agenda_data',
'meta_query' => array(
array(
'key' => 'agenda_final',
'value' => $get_data,
'compare' => '>=',
)
), 'orderby' => 'meta_value', 'order' => 'ASC')
)
);
Espero ter ajudado. Caso tenha algum problema pesquise como fazer comparações por meta_key ou pergunte aqui no fórum 