visual studio copy local

In visual studio, when you add a reference there is a flag in the properties called, “Copy Local”. There is some confusion about what this actually does and when. It seems easy to understand but my question is when does it copy local. Is it when the reference is added or does it copy the dll locally when the project is built.