What is difference between intermediate and boundary event?

Is there any definition that could help me distinguish these two?

I see there are Start, End, Intermediate, and Boundary events possible in Modeler. Start and End are pretty clear. But when do I know when I should be using Boundary or Intermediate Event?

Intermediate will execute between two another activities…say you have one task, then an intermediate event like send a message or wait in a timer and then another task (or end process event). Boundary event isnt between any activities, its in the border of another activity while these are still executing…

you can have a boundary timer event in an user task to say “if this task doesnt complete in 5 minutes, lets go this way instead”. You can put this boundary event in an expanded subprocess to have it while executing a larger flow inside it. And you can use a Non Interrupting boundary event to execute something without leave the main flow. Say you want to send and email if 5 minutes has passed waiting the user task to complete, but still want to wait in this task.