Leider musste ich hier ein wenig tricksen und 4 verschiedene Abfragen machen um auf meine Lösung zu kommen:
<CMS_FUNCTION name="contentSelect" resultname="fr_st_nextDefiniteEvent">
<CMS_VALUE_PARAM name="network_id" value="set_networkId" />
<CMS_PARAM name="schema" value="master_content" />
<QUERY entityType="events" limit="1">
<FILTERPARAM parameter="network_id" datatype="java.lang.Long"/>
<AND>
<EQ attribute="network.fs_id" datatype="java.lang.Integer" parameter="network_id"/>
<GTE attribute="end_date" datatype="de.espirit.common.Now" value="global.now.timeInMillis"/>
</AND>
<ORDERCRITERIA attribute="start_date"/>
</QUERY>
</CMS_FUNCTION>
<CMS_FUNCTION name="contentSelect" resultname="fr_st_lastDefiniteEvent">
<CMS_VALUE_PARAM name="network_id" value="set_networkId" />
<CMS_PARAM name="schema" value="master_content" />
<QUERY entityType="events" limit="1">
<FILTERPARAM parameter="network_id" datatype="java.lang.Long"/>
<AND>
<EQ attribute="network.fs_id" datatype="java.lang.Integer" parameter="network_id"/>
</AND>
<ORDERCRITERIA attribute="start_date" descending="1"/>
</QUERY>
</CMS_FUNCTION>
<CMS_FUNCTION name="contentSelect" resultname="fr_st_nextTemporaryEvent">
<CMS_VALUE_PARAM name="network_id" value="set_networkId" />
<CMS_PARAM name="schema" value="master_content" />
<QUERY entityType="events" limit="1">
<FILTERPARAM parameter="network_id" datatype="java.lang.Long"/>
<AND>
<EQ attribute="network.fs_id" datatype="java.lang.Integer" parameter="network_id"/>
<GTE attribute="temporary_date" datatype="de.espirit.common.Now" value="global.now.timeInMillis"/>
</AND>
<ORDERCRITERIA attribute="temporary_date"/>
</QUERY>
</CMS_FUNCTION>
<CMS_FUNCTION name="contentSelect" resultname="fr_st_lastTemporaryEvent">
<CMS_VALUE_PARAM name="network_id" value="set_networkId" />
<CMS_PARAM name="schema" value="master_content" />
<QUERY entityType="events" limit="1">
<FILTERPARAM parameter="network_id" datatype="java.lang.Long"/>
<AND>
<EQ attribute="network.fs_id" datatype="java.lang.Integer" parameter="network_id"/>
</AND>
<ORDERCRITERIA attribute="temporary" descending="1"/>
</QUERY>
</CMS_FUNCTION>
$CMS_IF(!gc_headerEvent.empty)$
$CMS_SET(set_networkId, gc_headerEvent.getDataset.getFormData.fs_id)$
$-- check if event networks returns an event and set next, respectively last event, as eventDataset --$
$CMS_IF(!fr_st_nextDefiniteEvent.empty)$
$CMS_SET(set_eventDataset, fr_st_nextDefiniteEvent.first)$
$CMS_ELSIF(fr_st_nextEvent.empty && !fr_st_lastDefiniteEvent.empty)$
$CMS_SET(set_eventDataset, fr_st_lastDefiniteEvent.first)$
$CMS_ELSIF(!fr_st_nextTemporaryEvent.empty)$
$CMS_SET(set_eventDataset, fr_st_nextTemporaryEvent.first)$
$CMS_ELSIF(fr_st_nextTemporaryEvent.empty && !fr_st_lastTemporaryEvent.empty)$
$CMS_SET(set_eventDataset, fr_st_lastTemporaryEvent.first)$
$CMS_ELSE$
$CMS_SET(set_eventDataset, null)$
$CMS_END_IF$
$CMS_END_IF$