if I understand you correctly, what you want to do is rather linking your data_table to the master_calendar three times via three different date_fields?
<=> Unfortunately, I don't know of a way to do that in QlikView as it doesn't let you specify which fields you want to use in a link, but it automatically links via any field(s) that happen to have the same name.
=> When I had this problem, I ended up creating a small secondary master_calendar.
You would need to do some kind of aggr expression I'd imagine to find the min date and the max date across all three fields and then store those min and max values in variables and use those variables for the master calendar. I find myself always referring to this community post for master calendar stuff... Hope that points ya in the right direction.