As I read your question I have found this scenario while I am practicing automation.
<div class = 'abc' id='*dynamic*'>
<div class = 'pqr'>date1</div>
</div>
<div class = 'abc' id='*dynamic*'>
<div class = 'pqr'>date2</div>
</div>
-Here you need to understand that you have all div as same structure.
-So you can use xpath only.
-Let`s try this this way.
-wrong Xpath : //div[@class='abc']/div[@class='pqr'][1]
-true Xpath : (//div[@class='abc']/div[@class='pqr'])[1]
-Here [1] is for first child with same place.
-This xpath is find first class=abc and then found class=pqr then it returns list of two element.
-This list can not be handled by wrong xpath.
-Wrong xpath gives two element.
-For take first date picker :
(//div[@class='abc']/div[@class='pqr'])[1]
-For take second date picker :
(//div[@class='abc']/div[@class='pqr'])[2]
-This will sure your problem for sure.