VIA Rail Trains in Canada | Tickets & Schedule - CANADA TRAINS (2024)

VIA Rail Trains in Canada | Tickets & Schedule - CANADA TRAINS (1) Find your train and book train tickets with Rail.Ninja® - a global independent online reservation service agency for train tickets

`); }); if($('.train-search-block').hasClass('round-trip') && selectedDates.length === 1) { $('.date-wrapper').append(`

`); } } } }; let datePicker = $("#searchDate").flatpickr(flatpickrOptions); $('.date-wrapper .date').append(`${datePicker.formatDate(firstDate, "d")}${datePicker.formatDate(firstDate, "M")}`); const renderErrorMessage = () => { let messages = []; $('.search-error-message').remove(); Object.keys(errors).forEach(key => messages.push(errors[key])); $('.train-search-form').append(`

${errorsMessages.hasError} ${messages.join(', ')}

`); }; const removeErrorAndUpdate = ($element) => { $element.removeClass('error-validation'); delete errors[$element.attr('class')]; $('.search-error-message').remove(); if (Object.entries(errors).length !== 0) { renderErrorMessage(); } }; $('input[type=radio][name=form-mode]').change(function () { if (this.value === link.mode.basic) { if (datePicker.selectedDates.length === 2) { datePicker.selectedDates.pop(); } if (errors['search-date']) { removeErrorAndUpdate($('.search-date')); } datePicker.set('mode', 'single'); datePicker.set('showMonths', 1); datePicker.destroy(); flatpickrOptions.defaultDate = firstDate; datePicker = $("#searchDate").flatpickr(flatpickrOptions); $('.date-wrapper').html(''); $('.date-wrapper').append(`

${datePicker.formatDate(firstDate, "d")}${datePicker.formatDate(firstDate, "M")}

`); $('.train-search-block').removeClass('round-trip'); } else if (this.value === link.mode.roundtrip) { firstDate = datePicker.selectedDates[0]; datePicker.set('mode', 'range'); if ($(window).width() > 725) { datePicker.set('showMonths', 2); } if ($('.date-wrapper .date').length < 2) { datePicker.open(); $('.date-wrapper').append(`

`); } $('.train-search-block').addClass('round-trip'); } }); $('.search-date').click(function () { datePicker.open(); }); $('.passengers-value').click(function () { $('.passengers-dropdown').show(); }); const quantityMinus = $('.quantity-counter .counter-minus'); const quantityPlus = $('.quantity-counter .counter-plus'); let passengersCount = 1; const getChildrenAgeWrapper = (number) => { return `

Child ${number}

`; }; quantityMinus.click(function (e) { e.preventDefault(); const input = $(this).siblings('.counter-input'); const isAdultsQuantity = $(this).closest('.quantity').hasClass('quantity-adults'); let value = input.val(); let minValue = 0; if (isAdultsQuantity) { minValue = 1; } if (value > minValue && passengersCount > 1) { value--; passengersCount--; input.val(value); } if (isAdultsQuantity) { $('.passengers-value .adults').html('×' + value); } else { const childrenLabel = $('.passengers-value .children'); if (value === 0 && childrenLabel.length !== 0) { childrenLabel.remove(); } else { childrenLabel.html('×' + value); } $('.children-age-wrapper').last().remove(); } }); quantityPlus.click(function (e) { e.preventDefault(); const input = $(this).siblings('.counter-input'); const isAdultsQuantity = $(this).closest('.quantity').hasClass('quantity-adults'); let value = input.val(); if (passengersCount < 9) { value++; passengersCount++; input.val(value); if (isAdultsQuantity) { $('.passengers-value .adults').html('×' + value); } else { if ($('.passengers-value .children').length === 0) { $('.passengers-value').append(''); } $('.passengers-value .children').html('×' + value); $('.passengers-dropdown-column').last().append(getChildrenAgeWrapper(value)); let choicesChildrenAge = new Choices('.choice-children-age', { searchEnabled: false, itemSelectText: '', shouldSort: false, }); } } }); const getDefaultRoutesIds = () => { const routes = ['departureStation', 'arrivalStation'].map(routeId => { const routeElement = document.getElementById(routeId); return routeElement ? routeElement.innerText.toLocaleLowerCase() : null; }).filter(route => route); if (routes.length) { return routes.map(route => cities.find(city => city.label.toLocaleLowerCase() === route)?.value); } return []; }; const defaultRoutesIds = getDefaultRoutesIds();const route1 = defaultRoutesIds[0] || '';const route2 = defaultRoutesIds[1] || '';const getChoicesOptions = (placeholder, station1, station2) => { const filteredCities = cities .filter(city => city.value !== station2) .map(city => { if (city.value === station1) { return { ...city, selected: true }; } return city; }); return { itemSelectText: '', searchPlaceholderValue: placeholder, searchInputMoveToTop: true, shouldSort: false, choices: [ { label: '', value: '', placeholder: true, selected: true, disabled: true, }, ...filteredCities, ], };};const departureChoices = new Choices('.departure > .choice-station', getChoicesOptions('From', route1, route2));const arrivalChoices = new Choices('.arrival > .choice-station', getChoicesOptions('To', route2, route1)); $('.stations .choice-station').on('choice', function(event) { const citiesFilter = cities.filter(city => city.value !== event.detail.choice.value); if ($(this).closest('.choices').parent().hasClass('departure')) { arrivalChoices.setChoices(citiesFilter, 'value', 'label', true); } else { departureChoices.setChoices(citiesFilter, 'value', 'label', true); } }); function isTouchDevice() { return 'ontouchstart' in window || navigator.maxTouchPoints; } if (isTouchDevice()) { $('.search-inputs').on('touchstart', '.children-age-select .choices', function () { $(this).click(); }); } $('.search-inputs').on('change', '.search-date.error-validation, .stations.error-validation, .passengers.error-validation', function () { removeErrorAndUpdate($(this)); }); $('.search-inputs').on('click', '.passengers.error-validation .counter-minus, .passengers.error-validation .counter-plus', function () { removeErrorAndUpdate($('.passengers')); }); $('.train-search-form').submit(function (e) { e.preventDefault(); const formMode = $("input[name='form-mode']:checked").val(); const firstDateFormatted = datePicker.formatDate(firstDate, "Y-m-d"); let secondDateFormatted; if (formMode === link.mode.roundtrip) { if (datePicker.selectedDates[1]) { secondDateFormatted = datePicker.formatDate(datePicker.selectedDates[1], "Y-m-d"); } else { $('.search-date').addClass('error-validation'); errors['search-date'] = errorsMessages.noSecondDate; } } let stations = ''; const choicesStation = $('.choice-station option'); const departureStation = choicesStation.eq(0).attr('value'); const arrivalStation = choicesStation.eq(1).attr('value'); if (departureStation && arrivalStation) { stations = `&${link.departure(1)}=${departureStation}&${link.arrival(1)}=${arrivalStation}&${link.date(1)}=${firstDateFormatted}`; if (formMode === link.mode.roundtrip) { stations += `&${link.departure(2)}=${arrivalStation}&${link.arrival(2)}=${departureStation}&${link.date(2)}=${secondDateFormatted}` } } else { $('.stations').addClass('error-validation'); errors['stations'] = errorsMessages.noStations; } const adultsCount = $('input[name="adultsCounter"]').val(); const adults = `&${link.adults}=${adultsCount}`; let children = ''; let childrenAge = ''; const childrenCount = $('input[name="childrenCounter"]').val(); if (childrenCount > 0) { children = `&${link.children}=${childrenCount}`; const childrenWrappers = $('.children-age-wrapper'); for (let i = 0; i < childrenCount; i++) { const age = childrenWrappers.eq(i).find('.choices__item').attr('data-value'); if (age >= 0) { childrenAge += `&${link.childrenAge(i)}=${age}`; } else { $('.passengers').addClass('error-validation'); errors['passengers'] = errorsMessages.noChildrenAge; } } } const utmStations = `${$('.stations input.choices__input').eq(0).val()}-${$('.stations input.choices__input').eq(1).val()}`; const utmLink = `&query[${link.utmSource.name}]=${link.utmSource.value}&query[${link.utmMedium.name}]=${link.utmMedium.value}&query[${link.utmTerm.name}]=${utmStations}&query[${link.utmCampaign.name}]=${link.utmCampaign.value}`; if (Object.entries(errors).length !== 0) { renderErrorMessage(); return; } const redirectLink = `${domain}/?${link.mode.name}=` + formMode + stations + adults + children + childrenAge + utmLink; window.open(redirectLink, "_blank"); }); $('html, body').click(function (event) { if (!$(event.target).closest('.passengers').length && $('.passengers-dropdown').is(':visible')) { $('.passengers-dropdown').hide(); } }); $('.swap-stations').click(function () { const departureStation = $('.departure input.choices__input').val(); const departureCode = $('.departure select.choice-station option').val(); const arrivalStation = $('.arrival input.choices__input').val(); const arrivalCode = $('.arrival select.choice-station option').val(); $('.departure input.choices__input').val(arrivalStation); $('.arrival input.choices__input').val(departureStation); $('.departure select.choice-station option').val(arrivalCode); $('.arrival select.choice-station option').val(departureCode); const departureCitiesFilter = cities.filter(city => { if (city.value === +arrivalCode) { city.selected = true; } if (city.value !== +departureCode) { return city; } }); const arrivalCitiesFilter = cities.filter(city => { if (city.value === +departureCode) { city.selected = true; } if (city.value !== +arrivalCode) { return city; } }); departureChoices.setChoices(departureCitiesFilter, 'value', 'label', true); arrivalChoices.setChoices(arrivalCitiesFilter, 'value', 'label', true); }); $(window).resize(() => { let date = datePicker.selectedDates; if ($('#oneWayTrip').is(':checked')) { datePicker.set('mode', 'single'); datePicker.set('showMonths', 1); datePicker.destroy(); datePicker = $("#searchDate").flatpickr(flatpickrOptions); } else { if ($(window).width() > 725) { datePicker.set('showMonths', 2); } else { datePicker.set('showMonths', 1); datePicker.destroy(); datePicker = $("#searchDate").flatpickr(flatpickrOptions); } datePicker.set('mode', 'range'); } datePicker.setDate(date); }); });

VIA Rail Trains in Canada | Tickets & Schedule - CANADA TRAINS (2024)

FAQs

How much does a train ticket across Canada cost? ›

How much does it cost to ride the train across Canada? The cost varies between routes and the time of year but for the 2024 season for travel between Toronto and Vancouver, it will cost around CAD $2500 per person in the winter months and $4500 per person in the summer months for a Sleeper Plus cabin.

What is the best train trip in Canada? ›

Canada Coast to Coast by Train

The Coast to Coast by train tops the list of best Canadian rail trips. You'll see the country's top highlights, including Peggy's Cove, Niagara Falls and Lake Louise. This trip includes time on VIA Rail, in a sleeper cabin, and on the Rocky Mountaineer.

Can I bring my own food on VIA Rail? ›

You can bring your own snacks and non-alcoholic drinks on the train. We also offer a selection of refreshments and food, prepared with carefully selected local products from Canadian artisans. Visit our meals section for more information about the options available for your class of service and route.

How much is the Canadian train from Toronto to Vancouver? ›

​There is normally 1 train per day travelling from Toronto to Vancouver and tickets for this journey start from $529 when you book in advance. Trains from Toronto to Vancouver will take you through some of the most picturesque landscapes in Canada as you experience the beauty of the country.

Where do you put your luggage on VIA Rail? ›

Please only bring baggage that you can carry and store unassisted (under the seat in front of you, on the overhead shelf or in the towers). For security reasons, checked baggage is not allowed on board without its owner.

Is it worth taking the train across Canada? ›

Travelling across Canada onboard a VIA Rail train is absolutely worth the time and money. Taking the train is the best way to experience the country and discover the diverse landscape, especially if it is your first time visiting Canada. What is the best Canadian Rockies train trip with The Canadian Train?

Are there bathrooms on via rail trains? ›

Yes, there are washrooms on every VIA Rail train. There are showers on some of our trains, depending on the route.

How early should I arrive for VIA Rail Canada? ›

Before the Trip

It's best to arrive at the station half an hour before departure for travel within the Corridor, and one hour before departure for long distance trains.

Where do I put my suitcase on a train? ›

There are no official weight restrictions, however luggage must not be so big or heavy that it cannot be handled by a single person. Luggage should be stored in overhead luggage racks, under the seats or in one of the luggage compartments located near the doors or in the middle of the carriage.

Can you hop on and off the Canadian train? ›

It is of course also possible to board the Canadian at the stops in-between these two cities, e.g. Kamloops, Jasper, Edmonton, Saskatoon, Winnipeg, or Sudbury Junction, or hop on/off as I did, spending a few days in each city (so long as you book the journeys individually).

Can you sleep in economy on VIA Rail? ›

Economy class

Spread out and let the gentle motion of the train rock you to sleep while you glide through the wilderness. Extra blankets and pillows can be purchased.

What is the difference between economy and economy plus on VIA Rail? ›

Economy Plus Class offers an upgraded experience compared to Economy Class. Passengers in this class benefit from enhanced seating comfort, including additional legroom and wider seats. This class is an excellent option for those seeking a bit more comfort and amenities at an affordable price.

How much is the luxury sleeper train across Canada? ›

The Toronto to Vancouver sleeper train cost depends on the train class you select and the date you choose to travel. Fares for a cabin for two in Sleeper Plus Class start at approximately $2000 per person. Fares for Prestige Class cabins start at approximately $5000 per person. VIA Rail fares are subject to change.

How many days does it take to cross Canada by train? ›

How long does it take to cross Canada by train? Without stops, it takes five to six days to cross Canada by train, if you go coast to coast.

How much does it cost to go from Vancouver to Toronto on the train? ›

​There is normally 1 train per day travelling from Vancouver to Toronto​ and tickets for this journey start from $579 when you book in advance.

Is train travel cheap in Canada? ›

Travelling across Canada by train can be expensive, but there are ways to save money. If your dates are flexible, check out the sleeper plus class discounts on VIA Rail's website (It's not easy to find). Some of the deals are very good.

References

Top Articles
Latest Posts
Article information

Author: Duane Harber

Last Updated:

Views: 5767

Rating: 4 / 5 (71 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Duane Harber

Birthday: 1999-10-17

Address: Apt. 404 9899 Magnolia Roads, Port Royceville, ID 78186

Phone: +186911129794335

Job: Human Hospitality Planner

Hobby: Listening to music, Orienteering, Knapping, Dance, Mountain biking, Fishing, Pottery

Introduction: My name is Duane Harber, I am a modern, clever, handsome, fair, agreeable, inexpensive, beautiful person who loves writing and wants to share my knowledge and understanding with you.