While it seems the two terms are used interchangeably for meetings where upcoming development content is discussed, I find it important to differentiate between the two as I see them fulfilling two different roles.
During this meeting things are kicked-off, as the name says. Its purpose is for a concept or idea to be presented to the team and provide the opportunity to discuss these.
This is the perfect time for punching holes into the concept, as everyone’s able to challenge the concept by pointing out flaws and risks. The whole team can brainstorm on the spot about ways to improve the concept and handle or mitigate any potential problems you’re seeing as you go through it.
But more than anything it’s imperative that everyone understands the concept and is on the same page about it. Questions are more than welcome - they should be encouraged. There should be nothing unclear about the concept at the end of the meeting.
Unlike with the kick-off meeting, everyone on the team should be aware of the concept idea in a planning meeting. The purpose here would be to establish dependencies, provide story estimations, iron out schedules, and generally agreeing on a plan for proceeding with the implementation.
This does not mean that changes cannot happen at this stage. Being Agile means changes are a core of your development process. But if they kick-off goes well, there shouldn’t be any major changes in a planning.
Planning is about ironing out your user stories to ensure they all have the acceptance criteria and testing notes that they need. It’s about agreeing on the order in which the stories need to be developed, discussing what automation coverage should take place, and all relevant plans for implementing the content.