I've hacked this together to create an event archive listing, and although it works, I'm wondering if it's 'correct' or could be done more succinctly?
{% set pastEvents = craft.entries.section('eventsEntry').orderBy('eventDate') %}
{% for date, entries in pastEvents | group("pastEvents.eventDate|date('Y')") %}
<h4>{{ date }}</h4>
<ul>
{% for event in pastEvents.all() if event.eventDate <= now %}
<li>
{{ event.eventDate|date('d/m/y') }}
{{ event.title }}
</li>
{% endfor %}
</ul>
{% endfor %}