For the sake of completion I’m going to post the solution here as well.
This was posted by Ned Zimmerman
I was able to fix this by adding ‘_EventDuration’ to the $metaTags array in lib/the-events-calendar-class.php as shown:
public $metaTags = array(
'_EventAllDay',
'_EventStartDate',
'_EventEndDate',
'_EventDuration',
'_EventVenueID',
'_EventShowMapLink',
'_EventShowMap',
'_EventCurrencySymbol',
'_EventCost',
'_EventURL',
'_EventOrganizerID',
'_EventPhone',
'_EventHideFromUpcoming',
self::EVENTSERROROPT
);
And by inserting the following after line 101 of lib/tribe-event-api.class.php:
$data[‘EventDuration’] = $endTimestamp – $startTimestamp;
The _EventDuration key was not being stored, as mdd061000 discovered, so I hacked this together to save it (as the duration in seconds). Would appreciate feedback from the developers—my past events page works now, at any rate.