The Event Calendar Widget that can be added to your website has two options for search.
Search by event
Search by location
We can see both of them in action here:

Search by event
When a user types a phrase into the 'search by event' box, we look through all of your events and return events that have a matching title or description.
We look for a rough match, not an exact match.
Search by location
Information on how to set this up can be found here
This allows your customers to type in an address/location/postcode/zipcode. We will then return the events in order of distance.
Here's an example using the national parks of America: