Io farei cosi.
Lavori con 2 variabili: Evento - Data e usi un form.
Crei una select-option con le scelte Evento (o Categoria come hai scritto tu), nel momento della scelta l'utente manda un form che ricarica la pagina
e in base al request ricevuto crei la lista della seconda select-option.
Questo potrebbe essere il primo form:
codice:
<FORM ACTION="pagina-del-form.asp" name="sceltaevento" METHOD="Get">
<SELECT NAME="Categoria">
<OPTION value="reset">Seleziona evento</OPTION>
<%
Do While NOT rs_Cnv.EOF
Response.write "<option value='<%=rs_Cnv("Categoria")%>'></option>"
rs_Cnv.MoveNext
Loop
%>
</SELECT>
<INPUT TYPE="submit" NAME="invia" VALUE="SCELTA">
</FORM>
Il ciclo di lettura dell'oggetto Categoria potrebbe derivare da un db (consigliato per memorizzare tutti i dati) oppure da un array, questo lo sai tu.
Se devi tenere in memoria tutte 2 le variabili al primo request puoi utilizzare una variabile Application. (se usi un db non serve.)
E' un po complessa la struttura ma è molto versatile.