For civiEvents in a Drupal View, how to display only one of a repeating event?
I do not think there is an easy way to do this via the Drupal Views interface.

However you can do it using jQuery or maybe CSS to hide all but the first instance of your repeating event.

Start off by creating a custom event option field to identify each type of event. You could even use the event type ID if you wanted and just add more options to it.

So it could be 


Jane's classes would have an ID of 1 
Joe's classes would have an ID of 2


So whatever you choose, each event will have an ID that identifies the type of event.

You can get these ID values into the View. Make sure you have Civicrm Entities module installed.

So now you have a view that shows say


Start date
Title
Event type ID or your custom field ID


Now you create a Row template for the View

Now you wrap the row in a div and you add in a class to the div dynamically, from the event_type_id.

So something like

&lt;?php $id = $fields['event_type_id']-&gt;raw;?&gt;
&lt;div class="event_type_&lt;?php print $id;?&gt;"&gt;
-----rest of the fields
&lt;/div&gt;


If you inspect the output on the page, then each row for Jane's classes will be wrapped in this div

&lt;div class="event_type_1"&gt;


for example.

jQuery solution

Now what you do is make yourself a Drupal module that adds a bit of jQuery for when the page has loaded.

It should have a function with a selector like this

$('event_type_1').slice(1).remove();


That would remove all but the first row of Jane's classes.

Or this selector could do it

$('event_type_1:not(first-child)').remove();


CSS solution

Add a class for the view using the Class option in Advanced section of Views admin for the view display.

Then try

.view-class-added &gt; event_type_1:not(:first-child) {
display: none;
}