For a particular event, how to list all the other events that participants have been on?
You can create a block using view.

Below exported view will list all events the logged in user is being registered.(To test you will need to import the views using below code)

$view = new view();
$view-&gt;name = 'event_listing';
$view-&gt;description = '';
$view-&gt;tag = 'default';
$view-&gt;base_table = 'civicrm_participant';
$view-&gt;human_name = 'Event listing';
$view-&gt;core = 7;
$view-&gt;api_version = '3.0';
$view-&gt;disabled = FALSE; /* Edit this to true to make a default view disabled initially */

/* Display: Master */
$handler = $view-&gt;new_display('default', 'Master', 'default');
$handler-&gt;display-&gt;display_options['title'] = 'Events';
$handler-&gt;display-&gt;display_options['use_more_always'] = FALSE;
$handler-&gt;display-&gt;display_options['access']['type'] = 'none';
$handler-&gt;display-&gt;display_options['cache']['type'] = 'none';
$handler-&gt;display-&gt;display_options['query']['type'] = 'views_query';
$handler-&gt;display-&gt;display_options['exposed_form']['type'] = 'basic';
$handler-&gt;display-&gt;display_options['pager']['type'] = 'full';
$handler-&gt;display-&gt;display_options['pager']['options']['items_per_page'] = '10';
$handler-&gt;display-&gt;display_options['style_plugin'] = 'default';
$handler-&gt;display-&gt;display_options['row_plugin'] = 'fields';
/* Field: CiviCRM Events: Title */
$handler-&gt;display-&gt;display_options['fields']['title']['id'] = 'title';
$handler-&gt;display-&gt;display_options['fields']['title']['table'] = 'civicrm_event';
$handler-&gt;display-&gt;display_options['fields']['title']['field'] = 'title';
$handler-&gt;display-&gt;display_options['fields']['title']['label'] = '';
$handler-&gt;display-&gt;display_options['fields']['title']['element_label_colon'] = FALSE;
$handler-&gt;display-&gt;display_options['fields']['title']['link_to_civicrm_event'] = 'page';
/* Contextual filter: CiviCRM Participants: Participant's Contact ID */
$handler-&gt;display-&gt;display_options['arguments']['contact_id']['id'] = 'contact_id';
$handler-&gt;display-&gt;display_options['arguments']['contact_id']['table'] = 'civicrm_participant';
$handler-&gt;display-&gt;display_options['arguments']['contact_id']['field'] = 'contact_id';
$handler-&gt;display-&gt;display_options['arguments']['contact_id']['default_action'] = 'default';
$handler-&gt;display-&gt;display_options['arguments']['contact_id']['default_argument_type'] = 'php';
$handler-&gt;display-&gt;display_options['arguments']['contact_id']['default_argument_options']['code'] = 'civicrm_initialize();
return CRM_Core_Session::singleton()-&gt;get(\'userID\');
';
$handler-&gt;display-&gt;display_options['arguments']['contact_id']['summary']['number_of_records'] = '0';
$handler-&gt;display-&gt;display_options['arguments']['contact_id']['summary']['format'] = 'default_summary';
$handler-&gt;display-&gt;display_options['arguments']['contact_id']['summary_options']['items_per_page'] = '25';

/* Display: Block */
$handler = $view-&gt;new_display('block', 'Block', 'block');