OFFSET ... FETCH overlapping results on second page
This is not unexpected.  Your ORDER BY does not determine a complete (unique) order. As described in MSDN documentation:

To achieve stable results between query requests using OFFSET and FETCH, the following conditions must be met:

The underlying data that is used by the query must not change. ...

The ORDER BY clause contains a column or combination of columns that are guaranteed to be unique.



You have order by date but all the rows have the same value in date. To have determinate results with TOP / OFFSET ... FETCH, you have to use an  ORDER BY that completely determines an ordering.
You could use for example:
order by date asc,
         name asc 

or (if (date, name) is not unique either:
order by date asc,
         eventID asc

or:
order by date asc,
         name asc,
         eventID asc

If the query is produced by some form and can be customized by the user, you could - behind the scenes - add the primary key column(s) (I guesseventID here) in the end of the order by list, so you have an order that is determinate and stays the same across different executions of the query.