Я согласен, CSV - это текстовое решение, и оно не требует открытия в Excel - но я думаю, что это то, что вы ищете: и оно использует PadLeft ()
$matches = @('short','this is a long string','a med string')
$maxlength = ($matches | Measure-Object -Maximum -Property Length).Maximum
$cal = '20190107' #not sure what cal is....
foreach($s in $array){
$paddedstring = $s.Padleft($maxlength,' ')
$paddedstring + ' ' + $cal | add-content -LiteralPath $cleancalendarslist
}