The timing of elections is a difficult conundrum.
Labour could have called an election in Autumn 1978 but didn’t. Then we had the winter of discontent and when Callaghan did go to the polls in May 1979, the conservatives won by a landslide.
In 2017, Theresa May sitting on a small majority, called a snap election hoping for a landslide, and lost seats, ending up worse than before.
2019 Boris timed it perfectly. They needed the Labour Party to agree, and foolishly they did, resulting in a landslide Tory win.
Boris doesn’t need to call an election, and knows the timing is very wrong.