Custom options on CiviEvent registration forms to handle breakout session choices
I've tried a bunch of approaches, and price sets are definitely the best approach here.


Create a "Select" price set for each group of concurrent sessions (e.g. "Workshop Session 1", "Workshop Session 2", etc.).
This also allows you to charge different amounts for different sessions, if some incur an additional cost.
The price set options selected will be stored on the participant record as "Fee Level", and can be easily searched/displayed.