After reading your post I have, and it's kind of complicated (in terms of application) and I don't recommend using the real life rules.
First off; the pro leagues have accurate dates in the original database. Those shouldn't be tampered with.
Here's the rules for the semi pro and amateur leagues, so starting from the third tier down:
Summer window:
Starting the second weekend of March, up until and including June 15th, players and clubs can apply for transfer registration. These will only be registered on July 1st.
These rules count for both international transfers, contract-to-contract situations and free agents.
Winter window:
This one starts on January 2nd and lasts until January 31st, 23:59.
Only players who are under contract or those who move to or from international clubs are qualified to transfer.
Then, there's the dispensation rules. Those state that from June 16 up until March and including March 1st, players can apply for dispensation, in case of home and job relocation for example.
I feel like this wouldn't work in-engine. To start off, talks with players year round are hardcoded into the game (I believe). So dispensation rules are basically non-existent. Plus, there are no rules exclusive to free agents. Also, the summer transfer window would realistically last one day (July 1st) and I don't think that the AI would use a transfer window like this. Plus, even if it would work, this could make one day take minutes to process which I don't think would be very beneficial to the experience.
So with the AI and player in mind I would suggest the following for the Tweede Divisie and under:
Summer window
International and national, June 15th (around 2 weeks before contracts end) - July 1st 23:59
Winter window
International and national, January 2nd - January 31st, 23:59
If anyone else thinks they have a better solution, feel free to propose corrections.
Hope this helps!