Interrogate a page within a loop to check template type or custom meta data (Pages vs Posts)

I would create an “Events” custom post type and then create a “Call to Action” custom taxonomy and associate this taxonomy with the custom post type.

This way you can have an unlimited amount of events which can be associated with taxonomy terms (your Call to Action). This makes much more sense since you project that you will have few Call to Action types (or terms).

You can the query posts by post type as well as taxonomy, additionally you can also query by meta key (should you attach custom fields to your post type for more definition).

Focus your attention on this Codex page here:

http://codex.wordpress.org/Class_Reference/WP_Query

…to learn more about how to query posts, by type, taxonomy and meta; not to mention much more.

Here is an example of setting up a basic query to query by your specified post type and taxonomy.

$args = array(
    'post_type' => 'events', //this is a custom post type
    'tax_query' => array(
        array(
            'taxonomy' => 'calltoaction', //this is a custom taxonomy
            'field' => 'slug',
            'terms' => 'somecalltoactionterm' //a term within your taxonomy
        )
    )
);
$query = new WP_Query( $args );

You could set these parameters dynamically through a form using $_GET if you wanted to create a filter that responded to a user changing values in say a dropdown menu or via checkboxes for examples.

Relevant reading: