When should the backlog refinement happen and who should be in it?

Backlog refinement is an activity that should happen regularly. The objective is to have enough user stories refined for the team to work for the next sprint. Thus it should happen before the Sprint Planning event. Ideally, you should have at least t