Start here. This is the direct spoken answer to practice first.
Why this question matters
Command and event confusion creates messy distributed systems. The distinction matters because it changes who owns the action and how tightly services are coupled.
A command asks a specific receiver to do something, like SendWelcomeEmail or GenerateInvoice. It carries intent and usually has one logical owner. An event announces that something already happened, like UserRegistered or OrderPaid. It is a fact that multiple consumers can react to independently. I would name messages so that intent versus fact is obvious.