Start here. This is the direct spoken answer to practice first.
Overview
Both may use schemas, but they represent different intentions in the application protocol.
I use structured output when the final result itself should have a known shape, such as extracted fields or a classification. I use tool calling when the model needs the application to fetch data, compute something, or request an action before completing the task. A tool call is a proposed invocation; the application decides whether and how to execute it.