There is a solution here for accepting only unique values https://support.advancedcustomfields.com/forums/topic/accept-only-unique-values/#post-45359
It is rather simple, but yes, you would need to validate both the start and end date and you would have to do one or more queries check the posts. Yes it would be complicated because you’re talking about (I think) basing uniqueness on 3 different fields.