@Azdrian’s link has a couple nice answers on this.
As a rule of thumb, I’d only use events in two cases:
If the action you want to trigger (the function) could be called by more than one source and you don’t yet know which ones.
If, conversely, your action may do different things depending on many different types of event that could trigger it.
In all cases you could go completely without events and call functions directly. But the more complex your system gets (e.g. many different buttons on lots of pages that could trigger your function), the more convenient do events become.