Posts nach einem Custom Field zu sortieren und zu filtern ist nicht ganz trivial. Hier ein Code-Beispiel für Trive-Events-Posts anhand des Startdatums:

<?php

// Query vorbereiten
$args=array(
	'post_type'       => 'tribe_events',
	'post_status'     => 'publish',
	'orderby'         => 'meta_value',
	'meta_key'        => '_EventStartDate',
	'order'           => 'ASC',
	'meta_query' => array(
	      array(
	         'key'     => '_EventStartDate',
	         'type'    => 'DATE',
	         'value'   => date('y-m-d H:i:s'),
	         'compare' => '>'
	     ),
	 ),
	'posts_per_page'  => -1
);

// Query durchführen
$wp_query=new WP_Query($args);

// Alle Events durchgehen
foreach ($wp_query->posts as $event)
{
	// Event verarbeiten ...
}

In diesem Beispiel werden alle Events deren Startdatum _EventStartDate in der Zukunft liegt abgefragt und aufsteigend nach ebendiesem sortiert.