Hi hlchia,
Something like this will require a degree of customization work. Events do not have tags for instance but they can be added.
You could then use these as the basis of your matching process, however I’m not absolutely clear on how you want to do this and it is in any case out of the scope of support for his to help you with something like this – there have been a few related threads however and you might be able to glean some useful info from those.
Please also be aware that events will have tags by default as of The Events Calendar 3.0 – and shortly after that release we hope to make available and advanced filtering plugin which could also be of interest here.
Thanks – and good luck!