'before' => 'nullable|date',
                        'event' => 'nullable|array',
                        'event.*' => 'numeric',
+                       'eventInvert' => 'boolean',
                        'limit' => 'numeric',
                        'offset' => 'numeric',
                        'reverse' => 'boolean',
                        $episodes = $episodes->where('episodes.start', '<=', $validatedData['before']);
                }
                if (!empty($validatedData['event'])) {
-                       $episodes = $episodes->whereIn('episodes.event_id', $validatedData['event']);
+                       if (isset($validatedData['eventInvert']) && $validatedData['eventInvert']) {
+                               $episodes = $episodes->whereNotIn('episodes.event_id', $validatedData['event']);
+                       } else {
+                               $episodes = $episodes->whereIn('episodes.event_id', $validatedData['event']);
+                       }
                }
                if ($request->user() && $request->user()->isPrivileged()) {
                        $episodes = $episodes->with(['crew', 'crew.user']);
 
 };
 
 export const isEventSelected = (filter, event) => {
-       return (filter.event || []).includes(event.id);
+       const found = (filter.event || []).includes(event.id);
+       return filter.eventInvert ? !found : found;
 };
 
+export const invertEventFilter = (filter) => ({
+       ...filter,
+       eventInvert: filter.eventInvert ? 0 : 1,
+});
+
 export const toggleEventFilter = (events, filter, event) => {
        const eventFilter = filter.event || [];
        if (eventFilter.includes(event.id)) {
 
 import Filter from '../components/episodes/Filter';
 import List from '../components/episodes/List';
 import RestreamDialog from '../components/episodes/RestreamDialog';
-import { toggleEventFilter } from '../helpers/Episode';
+import { invertEventFilter, toggleEventFilter } from '../helpers/Episode';
 import { useUser } from '../hooks/user';
 
 export const Component = () => {
        }, []);
 
        const invertFilter = React.useCallback(() => {
-               updateFilter(events.reduce((newFilter, event) => {
-                       return toggleEventFilter(events, newFilter, event);
-               }, filter));
-       }, [events, filter]);
+               updateFilter(invertEventFilter(filter));
+       }, [filter, updateFilter]);
 
        const fetchEpisodes = React.useCallback((controller, ahead, behind, filter) => {
                axios.get(`/api/episodes`, {