Regarding the second question, generally if you take your events page url:
www.yoursite.com/events/event/
and append any query variables, then it should work:
www.yoursite.com/events/event/?s=monthly
Other parameters include event_start_after`` and
event_end_after` (or _before). For event tags/venues/categories you can do (for example)
events/event/?event-tag=tag-a
for ‘Tag A’
events/event/?event-tag=tag-a,tag-b
for ‘Tag A’ or ‘Tag B’. And
events/event/?event-tag=tag-a+tag-b
for events with both Tag A and Tag B.
Please note: the page titles probably will be misleading. For instance in the case of the above it might read, ‘Event tag: Tag A’. The logic in the templates hasn’t been configured to handle queries where multiple tags, or even taxonomies are being queried, but you can edit those templates to handle that situation.
For first part, I simply meant [registering a new widget]https://codex.wordpress.org/Widgets_API) which would list any filters you want to implement (i.e. tags, categories etc). You’ll need to keep track of the user’s current selection (e.g. by inspecting the URL or session cookies). So, for instance if the user has selected a tag they might be on:
www.yoursite.com/events/event/?event-tag=tag-a
If they then select a tag B and you want to show events in both tag A and tag B then you would link them to:
www.yoursite.com/events/event/?event-tag=tag-a+tag-b
(or use a comma for events with either Tag A or Tag B).