Events are usually considered to be user-initiated (e.g. a mouse click or a button on the keyboard pressed), but they can also be caused by other portions of the code (e.g. to indicate that a process that takes a long time to complete has completed.)