Search Extensions

Events Wizard

The Events Calendar makes creating events for your WordPress calendar a cinch. But this extension makes it even easier by introducing an efficient step-by-step process for creating new events that we call the Event Wizard.


The Events Calendar is required to use this extension. You can also use Event Tickets alongside The Events Calendar if you plan in creating tickets for events.


  • Download the extension ZIP file
  • Log into the WordPress dashboard and navigate to Plugins → Add New
  • Click the “Upload Plugin” option and choose the extension ZIP file
  • Activate the plugin once it has been installed


Once activated, the Events Wizard will open when you create a new event (Events → Add New).

Events Wizard turns creating new events into a four-step guided process:

  • Step 1: Give the event a title.
  • Step 2: Select the start and end dates.
  • Step 3: Enter a link to a livestream if this is an online event.
  • Step 4: Add tickets to the event (Event Tickets required)

That’s it! You will be redirected to the full event editor to add more details if you’d like. Otherwise, go forth and publish the event!

What if you don’t want to use the Events Wizard for an event? Simply click the “Skip” link on the screen to close Events Wizard and continue to the full WordPress editor.

Custom steps

Events Wizard can be customized as well. For example, add more steps with a snippet like this in your theme’s functions.php file.

add_filter( 'tribe_ext_events_wizard_data', 'custom_last_step' ); function custom_last_step( $steps ) {    
  $fields = []; $fields[] = [ 'id' => 'my_confirmation_field',
    'name'        => 'my_confirmation_field',
    'type'        => 'checkbox',
    'label'       => __( 'Just confirm what I want' ),
    'classes'     => 'my-own__css-class',

  $step = [
    'id'          => 'my-confirmation-step',
    'step_title'  => esc_html__( 'Last' ),
    'title'       => esc_html__( 'I need your confirmation' ),
    'description' => esc_html__( 'And here I am explaining why, because I am a description' ),
    'fields'      => $fields,
    'classes'     => '',

  $steps[] = $step;

  return $steps;

And to intercept the saving to do whatever you want with this information you can do the following:


add_action( 'tribe_ext_events_wizard_event_add', 'custom_last_step_save' );

function custom_last_step_save( $event_id, $_post ) {
  if ( empty( $event_id ) ) {

  $my_confirmation_value = isset( $_post['my_confirmation_field'] ) ? sanitize_text_field( $_post['my_confirmation_field'] ) : '';

  update_post_meta( $event_id, '_my_confirmation', $my_confirmation_value );


You can also filter the event creation arguments by hooking into the tribe_ext_events_wizard_event_args filter. For example, to publish the events directly after the last step instead of saving the event as a draft, you can do the following:


add_filter( 'tribe_ext_events_wizard_event_args', 'events_wizard_set_new_event_published' );

function events_wizard_set_new_event_published( $args ) {

  $args['post_status'] = 'publish';

  return $args;


The full documentation for this extension is available in the GitHub repository.


Version 1.0.0

  • May 20, 2020
  • Initial release

Download Extension

👋 Heads up! We provide limited support for extensions, but you can still open a ticket over at our Help Desk to report any issues.
Install Instructions