I understand Jonathan Coleman’s resignation is effective Sunday 15 April 2018.
That means the writ must be issued within three weeks, so as early as Monday 16 April 2018 or as late as Monday 7 May 2018.
This means the writ with final election results must be returned by Tuesday 26 June 2018.
You generally allow 17 days for special votes and recounts so that means the latest date for the by-election would be Saturday 9 June 2018.
The earliest possible date would be Saturday 19 May 2018.
So possible dates are 19 May, 26 May, 2 June or 9 June.
19 May would be two days after the Budget. Labour might try and capitalise on the Budget for some good news, but it might also interfere with the final couple of days of the by-election.
2 June is Queens Birthday Weekend and heaps of people away then.
9 June is the All Blacks vs France at Eden Park, which could be an issue.
So my best guess is the Prime Minister goes for Saturday 26 May 2018.