# Filtering the listview¶

In the Events and event-registration you can define criterias for the listview, so it e.g. only shows the events of a special category or for a special location. Nearly all settings affecting the demand of the shown events can be overwritten by a URL parameter called overwriteDemand.

Below follows some examples for the overwriteDemand setting:

## Filter by category¶

The following code snippet shows a list of links which restrict the category to be shown to the given category:

<f:for each="{categories}" as="category">
<f:if condition="{overwriteDemand.category} == {category.uid}">
<f:then>
</f:then>
<f:else>
</f:else>
</f:if>
</f:for>


As all links are generated using the f:link.action viewHelper, they are fully cached.

## Filter by special location properties¶

It is possible to filter events by the location city and country. Using the overwriteDemand parameter is as following:

<f:link.action action="list" controller="Event" arguments="{overwriteDemand:{locationCity: 'Hamburg'}}">Show all events in Hamburg</f:link.action>



## Filter by year, month and/or day¶

It is possible to filter events by a specific year, month or day. Using the overwriteDemand parameter is as following:

<f:link.action action="list" controller="Event" arguments="{overwriteDemand:{year: '2017'}}">All events in 2017</f:link.action>

<f:link.action action="list" controller="Event" arguments="{overwriteDemand:{year: '2017', month: '10'}}">All events in october of the year 2017</f:link.action>

<f:link.action action="list" controller="Event" arguments="{overwriteDemand:{year: '2017', month: '10', day: '1'}}">All events on the 1st of october 2017</f:link.action>


The filtering also respects events, which are in between the given filter criteria. If you for example set the filter option to filter events for the 2st of october 2017, then also an event will be shown, that start at the 1st of october and ends at the 3rd of october.