Italy's transport unions said railway maintenance staff would hold a half-day national strike on Friday after five workers were run over and killed by a train while replacing a stretch of track.
The accident involving an empty passenger train took place at around midnight on Wednesday outside the station of Brandizzo, on the line connecting Milan and Turin.
Transport Minister Matteo Salvini said prosecutors and his ministry were looking into how it happened.
He and Prime Minister Giorgia Meloni expressed their condolences, along with other politicians.
But Maurizio Landini, head of Italy's largest union, the CGIL, said too many Italians were dying at work due to inadequate safety procedures.
"Indignation and condolences are no longer enough ... This massacre has to stop immediately," he said in announcing the strike, adding that further stoppages were planned on Monday in the Piedmont region around Turin.
"Too many tragedies at work are caused by lowering safety standards to speed things up and cut costs," Landini said.
Two workers managed to avoid the train, which officials said was travelling at around 160 kilometres (100 miles) per hour, and were unhurt.
The train driver was treated for shock at the scene and then allowed to go home.