According to the Scrum Guide,
Product backlog grooming is the act of adding detail, estimates, and order to items in the Product Backlog... Grooming is a part-time activity during a Sprint between the Product Owner and the Development Team... Grooming usually consumes no more than 10% of the capacity of the Development Team.
So you should be working with the Product Owner to add detail and estimates to your Product Backlog items throughout the Sprint, not just during Sprint Planning, which should concentrate more on planning your goal for the current Sprint. Estimates for fuzzy items should be large, because of the uncertainty involved. As you get more feedback from customers, discussion with the Product Owner, etc., you can improve your estimates.
At the end of a Sprint, the new Increment must be "Done,"... It must be in usable condition regardless of whether the Product Owner decides to actually release it.
So, it's up to the Product Owner when it gets released. He may decide he wants to wait until some specific set of high-priority features has been included in the Increment, or he may have a fixed release date at which point whatever is Done gets released. In any case, whatever the Team delivers at the end of a Sprint should be ready to ship to customers, so that the Product Owner is free to make that decision.
Since the Product Backlog is ordered, the Product Owner can also use the Team's velocity to make an estimate of what Product Backlog items will be Done by the end of a given Sprint. He may thus plan a release date well ahead of time based on when he feels his set of high-priority features will be done, or he may order features in such a way that whatever is needed for a given release will be done by the time that release date rolls around.
Note that early in a project, a Team's velocity will likely be all over the place as they nail down their Definition of "Done" and possibly take out some early-project technical debt, so it's hard to make these kinds of projections. If you need to determine release dates at an early stage, it's probably better to set fixed release milestones, or to just wait until the outcome of a Sprint is deemed to contain enough value to be released.