trainplanet.com Open in urlscan Pro
2606:4700:3037::6815:380c  Public Scan

Submitted URL: http://www.trainplanet.nl/
Effective URL: https://trainplanet.com/en/
Submission: On January 04 via api from US — Scanned from NL

Form analysis 3 forms found in the DOM

GET https://trainplanet.com/en/

<form role="search" method="get" class="et-search-form" action="https://trainplanet.com/en/">
  <input type="search" class="et-search-field" placeholder="Search …" value="" name="s" title="Search for:">
</form>

<form class="search-form ng-untouched ng-pristine ng-invalid" novalidate="" ng-reflect-form="[object Object]"><!--bindings={
  "ng-reflect-ng-if": "true"
}-->
  <div class="search-form__header ng-star-inserted">
    <div class="search-form__header__options"><maja-group-radio-button class="search-form__radio" controlname="withReturn" _nghost-ucn-c3="" ng-reflect-parent="[object Object]" ng-reflect-control-name="withReturn"
        ng-reflect-options="[object Object],[object Object">
        <div _ngcontent-ucn-c3="" class="radio-group ng-untouched ng-pristine ng-invalid" ng-reflect-form="[object Object]"><mat-radio-group _ngcontent-ucn-c3="" class="mat-radio-group ng-untouched ng-pristine ng-valid" role="radiogroup"
            ng-reflect-name="withReturn"><!--bindings={
  "ng-reflect-ng-for-of": "[object Object],[object Object"
}--><mat-radio-button _ngcontent-ucn-c3="" class="mat-radio-button mat-radio-checked mat-accent ng-star-inserted" ng-reflect-value="false" tabindex="-1" id="mat-radio-2"><label class="mat-radio-label" for="mat-radio-2-input">
                <div class="mat-radio-container">
                  <div class="mat-radio-outer-circle"></div>
                  <div class="mat-radio-inner-circle"></div>
                  <div class="mat-radio-ripple mat-ripple" mat-ripple="" ng-reflect-centered="true" ng-reflect-radius="20" ng-reflect-animation="[object Object]" ng-reflect-disabled="false" ng-reflect-trigger="[object HTMLLabelElement]">
                    <div class="mat-ripple-element mat-radio-persistent-ripple"></div>
                  </div><input class="mat-radio-input cdk-visually-hidden" type="radio" id="mat-radio-2-input" tabindex="0" name="mat-radio-group-0">
                </div>
                <div class="mat-radio-label-content"><span style="display:none">&nbsp;</span>One way</div>
              </label></mat-radio-button><mat-radio-button _ngcontent-ucn-c3="" class="mat-radio-button mat-accent ng-star-inserted" ng-reflect-value="true" tabindex="-1" id="mat-radio-3"><label class="mat-radio-label" for="mat-radio-3-input">
                <div class="mat-radio-container">
                  <div class="mat-radio-outer-circle"></div>
                  <div class="mat-radio-inner-circle"></div>
                  <div class="mat-radio-ripple mat-ripple" mat-ripple="" ng-reflect-centered="true" ng-reflect-radius="20" ng-reflect-animation="[object Object]" ng-reflect-disabled="false" ng-reflect-trigger="[object HTMLLabelElement]">
                    <div class="mat-ripple-element mat-radio-persistent-ripple"></div>
                  </div><input class="mat-radio-input cdk-visually-hidden" type="radio" id="mat-radio-3-input" tabindex="0" name="mat-radio-group-0">
                </div>
                <div class="mat-radio-label-content"><span style="display:none">&nbsp;</span>With return</div>
              </label></mat-radio-button></mat-radio-group></div>
      </maja-group-radio-button><mat-checkbox class="search-form__checkbox search-form__header__interrail mat-checkbox mat-accent ng-untouched ng-pristine ng-valid" formcontrolname="isInterrailPassActive" mattooltipposition="above"
        aria-describedby="cdk-describedby-message-0" cdk-describedby-host="" ng-reflect-position="above" ng-reflect-disabled="true" ng-reflect-message="When booking Interrail reserva" ng-reflect-name="isInterrailPassActive" id="mat-checkbox-1"><label
          class="mat-checkbox-layout" for="mat-checkbox-1-input">
          <div class="mat-checkbox-inner-container"><input class="mat-checkbox-input cdk-visually-hidden" type="checkbox" id="mat-checkbox-1-input" tabindex="0" aria-checked="false">
            <div class="mat-checkbox-ripple mat-ripple" matripple="" ng-reflect-centered="true" ng-reflect-radius="20" ng-reflect-animation="[object Object]" ng-reflect-disabled="false" ng-reflect-trigger="[object HTMLLabelElement]">
              <div class="mat-ripple-element mat-checkbox-persistent-ripple"></div>
            </div>
            <div class="mat-checkbox-frame"></div>
            <div class="mat-checkbox-background"><svg xml:space="preserve" class="mat-checkbox-checkmark" focusable="false" version="1.1" viewBox="0 0 24 24">
                <path class="mat-checkbox-checkmark-path" d="M4.1,12.7 9,17.6 20.3,6.3" fill="none" stroke="white"></path>
              </svg>
              <div class="mat-checkbox-mixedmark"></div>
            </div>
          </div><span class="mat-checkbox-label"><span style="display:none">&nbsp;</span>Interrail </span>
        </label></mat-checkbox>
      <div class="question-mark" majatooltip="" ng-reflect-content-template="[object Object]"> ? </div>
    </div>
  </div>
  <div class="search-form__body">
    <div class="form__row"><maja-location-input class="search-form__input" controlname="from" ng-reflect-label="From" ng-reflect-control-name="from" ng-reflect-parent="[object Object]" ng-reflect-options="">
        <div class="location-input ng-untouched ng-pristine ng-invalid" ng-reflect-form="[object Object]">
          <div class="input"><mat-label class="label">From</mat-label><mat-form-field
              class="mat-form-field ng-tns-c10-0 mat-primary mat-form-field-type-mat-input mat-form-field-appearance-legacy mat-form-field-can-float mat-form-field-should-float mat-form-field-has-label ng-untouched ng-pristine ng-invalid">
              <div class="mat-form-field-wrapper">
                <div class="mat-form-field-flex"><!--bindings={
  "ng-reflect-ng-if": "false"
}--><!--bindings={
  "ng-reflect-ng-if": "0"
}-->
                  <div class="mat-form-field-infix"><input class="mat-input-element mat-form-field-autofill-control cdk-text-field-autofill-monitored ng-untouched ng-pristine ng-invalid" matinput="" required="" type="text"
                      ng-reflect-autocomplete="[object Object]" ng-reflect-required="" ng-reflect-name="from" ng-reflect-placeholder="From" ng-reflect-type="text" data-test-id="from" autocomplete="off" role="combobox" aria-autocomplete="list"
                      aria-expanded="false" aria-haspopup="true" id="mat-input-0" placeholder="From" aria-invalid="false" aria-required="true"><mat-autocomplete class="mat-autocomplete" ng-reflect-display-with="displayLocationName(e){return "
                      ng-reflect-auto-active-first-option="true"><!----></mat-autocomplete><span class="mat-form-field-label-wrapper"><!--bindings={
  "ng-reflect-ng-if": "true"
}--><label class="mat-form-field-label ng-tns-c10-0 ng-star-inserted" ng-reflect-ng-switch="true" ng-reflect-disabled="true" id="mat-form-field-label-1" for="mat-input-0" aria-owns="mat-input-0"><!--bindings={
  "ng-reflect-ng-switch-case": "false"
}--><!--bindings={
  "ng-reflect-ng-switch-case": "true"
}--><mat-label class="ng-star-inserted">From</mat-label><!----><!--bindings={
  "ng-reflect-ng-if": "true"
}--><span aria-hidden="true" class="mat-placeholder-required mat-form-field-required-marker ng-tns-c10-0 ng-star-inserted"> *</span></label></span></div><!--bindings={
  "ng-reflect-ng-if": "0"
}-->
                </div><!--bindings={
  "ng-reflect-ng-if": "true"
}-->
                <div class="mat-form-field-underline ng-tns-c10-0 ng-star-inserted"><span class="mat-form-field-ripple"></span></div>
                <div class="mat-form-field-subscript-wrapper" ng-reflect-ng-switch="hint"><!--bindings={
  "ng-reflect-ng-switch-case": "error"
}--><!--bindings={
  "ng-reflect-ng-switch-case": "hint"
}-->
                  <div class="mat-form-field-hint-wrapper ng-tns-c10-0 ng-trigger ng-trigger-transitionMessages ng-star-inserted" style="opacity: 1; transform: translateY(0%);"><!--bindings={
  "ng-reflect-ng-if": ""
}-->
                    <div class="mat-form-field-hint-spacer"></div>
                  </div>
                </div>
              </div>
            </mat-form-field></div>
        </div>
      </maja-location-input><mat-icon class="icon-exchange mat-icon notranslate mat-icon-no-color" role="img" aria-hidden="true" ng-reflect-svg-icon="iconExchangeDark"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%"
          viewBox="0 0 22.032 20.41" fit="" preserveAspectRatio="xMidYMid meet" focusable="false">
          <defs>
            <style>
              .arrow {
                width: 22.032px;
                height: 20.41px;
              }
            </style>
          </defs>
          <path class="arrow"
            d="M21.883,73.426l-3.927,4.355a.473.473,0,0,1-.721,0l-.3-.335a.615.615,0,0,1,0-.8l2.587-2.862H.8a.541.541,0,0,1-.51-.568v-.379a.541.541,0,0,1,.51-.568h18.72l-2.588-2.862a.615.615,0,0,1,0-.8l.3-.335a.473.473,0,0,1,.721,0l3.927,4.355A.615.615,0,0,1,21.883,73.426ZM.149,83.989l3.927,4.355a.473.473,0,0,0,.721,0l.3-.335a.615.615,0,0,0,0-.8L2.509,84.345h18.72a.541.541,0,0,0,.51-.568V83.4a.541.541,0,0,0-.51-.568H2.51L5.1,79.968a.615.615,0,0,0,0-.8l-.3-.335a.473.473,0,0,0-.721,0L.149,83.186a.615.615,0,0,0,0,.8Z"
            transform="translate(0 -68.101)"></path>
        </svg></mat-icon><maja-location-input class="search-form__input" controlname="to" ng-reflect-label="To" ng-reflect-control-name="to" ng-reflect-parent="[object Object]" ng-reflect-options="">
        <div class="location-input ng-untouched ng-pristine ng-invalid" ng-reflect-form="[object Object]">
          <div class="input"><mat-label class="label">To</mat-label><mat-form-field
              class="mat-form-field ng-tns-c10-1 mat-primary mat-form-field-type-mat-input mat-form-field-appearance-legacy mat-form-field-can-float mat-form-field-should-float mat-form-field-has-label ng-untouched ng-pristine ng-invalid">
              <div class="mat-form-field-wrapper">
                <div class="mat-form-field-flex"><!--bindings={
  "ng-reflect-ng-if": "false"
}--><!--bindings={
  "ng-reflect-ng-if": "0"
}-->
                  <div class="mat-form-field-infix"><input class="mat-input-element mat-form-field-autofill-control cdk-text-field-autofill-monitored ng-untouched ng-pristine ng-invalid" matinput="" required="" type="text"
                      ng-reflect-autocomplete="[object Object]" ng-reflect-required="" ng-reflect-name="to" ng-reflect-placeholder="To" ng-reflect-type="text" data-test-id="to" autocomplete="off" role="combobox" aria-autocomplete="list"
                      aria-expanded="false" aria-haspopup="true" id="mat-input-1" placeholder="To" aria-invalid="false" aria-required="true"><mat-autocomplete class="mat-autocomplete" ng-reflect-display-with="displayLocationName(e){return "
                      ng-reflect-auto-active-first-option="true"><!----></mat-autocomplete><span class="mat-form-field-label-wrapper"><!--bindings={
  "ng-reflect-ng-if": "true"
}--><label class="mat-form-field-label ng-tns-c10-1 ng-star-inserted" ng-reflect-ng-switch="true" ng-reflect-disabled="true" id="mat-form-field-label-3" for="mat-input-1" aria-owns="mat-input-1"><!--bindings={
  "ng-reflect-ng-switch-case": "false"
}--><!--bindings={
  "ng-reflect-ng-switch-case": "true"
}--><mat-label class="ng-star-inserted">To</mat-label><!----><!--bindings={
  "ng-reflect-ng-if": "true"
}--><span aria-hidden="true" class="mat-placeholder-required mat-form-field-required-marker ng-tns-c10-1 ng-star-inserted"> *</span></label></span></div><!--bindings={
  "ng-reflect-ng-if": "0"
}-->
                </div><!--bindings={
  "ng-reflect-ng-if": "true"
}-->
                <div class="mat-form-field-underline ng-tns-c10-1 ng-star-inserted"><span class="mat-form-field-ripple"></span></div>
                <div class="mat-form-field-subscript-wrapper" ng-reflect-ng-switch="hint"><!--bindings={
  "ng-reflect-ng-switch-case": "error"
}--><!--bindings={
  "ng-reflect-ng-switch-case": "hint"
}-->
                  <div class="mat-form-field-hint-wrapper ng-tns-c10-1 ng-trigger ng-trigger-transitionMessages ng-star-inserted" style="opacity: 1; transform: translateY(0%);"><!--bindings={
  "ng-reflect-ng-if": ""
}-->
                    <div class="mat-form-field-hint-spacer"></div>
                  </div>
                </div>
              </div>
            </mat-form-field></div>
        </div>
      </maja-location-input></div><!--bindings={
  "ng-reflect-ng-if": "false"
}-->
    <div class="form__row"><maja-location-datepicker class="search-form__datepicker" controlname="date" ng-reflect-control-name="date" ng-reflect-label="Departing" ng-reflect-parent="[object Object]"
        ng-reflect-start-at="Tue Jan 04 2022 16:02:30 GMT+0">
        <div class="location-input ng-untouched ng-pristine ng-invalid" ng-reflect-form="[object Object]"><mat-label class="label">Departing</mat-label><mat-form-field appearance="outline"
            class="mat-form-field ng-tns-c10-2 mat-primary mat-form-field-type-mat-input mat-form-field-appearance-outline mat-form-field-can-float mat-form-field-should-float ng-untouched ng-pristine ng-valid" ng-reflect-appearance="outline">
            <div class="mat-form-field-wrapper">
              <div class="mat-form-field-flex"><!--bindings={
  "ng-reflect-ng-if": "true"
}--><!---->
                <div class="mat-form-field-outline ng-tns-c10-2 ng-star-inserted">
                  <div class="mat-form-field-outline-start"></div>
                  <div class="mat-form-field-outline-gap"></div>
                  <div class="mat-form-field-outline-end"></div>
                </div>
                <div class="mat-form-field-outline mat-form-field-outline-thick ng-tns-c10-2 ng-star-inserted">
                  <div class="mat-form-field-outline-start"></div>
                  <div class="mat-form-field-outline-gap"></div>
                  <div class="mat-form-field-outline-end"></div>
                </div><!--bindings={
  "ng-reflect-ng-if": "1"
}-->
                <div class="mat-form-field-prefix ng-tns-c10-2 ng-star-inserted"><mat-datepicker-toggle class="mat-datepicker-toggle" matprefix="" ng-reflect-datepicker="[object Object]" tabindex="-1"><button aria-haspopup="dialog" mat-icon-button=""
                      type="button" class="mat-icon-button" ng-reflect-disabled="false" aria-label="Open calendar" tabindex="0"><span class="mat-button-wrapper"><!--bindings={
  "ng-reflect-ng-if": "false"
}--><mat-icon class="mat-icon notranslate mat-icon-no-color" matdatepickertoggleicon="" role="img" svgicon="iconCalendar" aria-hidden="true" ng-reflect-svg-icon="iconCalendar"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%"
                            viewBox="0 0 19.3 22.057" fit="" preserveAspectRatio="xMidYMid meet" focusable="false">
                            <defs>
                              <style> </style>
                            </defs>
                            <path
                              d="M17.232,2.757H15.164V.517A.518.518,0,0,0,14.647,0H14.3a.518.518,0,0,0-.517.517v2.24H5.514V.517A.518.518,0,0,0,5,0H4.653a.518.518,0,0,0-.517.517v2.24H2.068A2.068,2.068,0,0,0,0,4.825V19.989a2.068,2.068,0,0,0,2.068,2.068H17.232A2.068,2.068,0,0,0,19.3,19.989V4.825A2.068,2.068,0,0,0,17.232,2.757ZM2.068,4.136H17.232a.691.691,0,0,1,.689.689V6.893H1.379V4.825A.691.691,0,0,1,2.068,4.136ZM17.232,20.678H2.068a.691.691,0,0,1-.689-.689V8.271H17.921V19.989A.691.691,0,0,1,17.232,20.678ZM6.376,13.785H4.653a.518.518,0,0,1-.517-.517V11.545a.518.518,0,0,1,.517-.517H6.376a.518.518,0,0,1,.517.517v1.723A.518.518,0,0,1,6.376,13.785Zm4.136,0H8.788a.518.518,0,0,1-.517-.517V11.545a.518.518,0,0,1,.517-.517h1.723a.518.518,0,0,1,.517.517v1.723A.518.518,0,0,1,10.511,13.785Zm4.136,0H12.924a.518.518,0,0,1-.517-.517V11.545a.518.518,0,0,1,.517-.517h1.723a.518.518,0,0,1,.517.517v1.723A.518.518,0,0,1,14.647,13.785Zm-4.136,4.136H8.788a.518.518,0,0,1-.517-.517V15.681a.518.518,0,0,1,.517-.517h1.723a.518.518,0,0,1,.517.517V17.4A.518.518,0,0,1,10.511,17.921Zm-4.136,0H4.653a.518.518,0,0,1-.517-.517V15.681a.518.518,0,0,1,.517-.517H6.376a.518.518,0,0,1,.517.517V17.4A.518.518,0,0,1,6.376,17.921Zm8.271,0H12.924a.518.518,0,0,1-.517-.517V15.681a.518.518,0,0,1,.517-.517h1.723a.518.518,0,0,1,.517.517V17.4A.518.518,0,0,1,14.647,17.921Z">
                            </path>
                          </svg></mat-icon></span>
                      <div class="mat-button-ripple mat-ripple mat-button-ripple-round" matripple="" ng-reflect-centered="true" ng-reflect-disabled="false" ng-reflect-trigger="[object HTMLButtonElement]"></div>
                      <div class="mat-button-focus-overlay"></div>
                    </button></mat-datepicker-toggle></div>
                <div class="mat-form-field-infix"><input aria-haspopup="dialog" class="mat-input-element mat-form-field-autofill-control cdk-text-field-autofill-monitored ng-untouched ng-pristine ng-valid" matinput="" required="" type="type"
                    ng-reflect-mat-datepicker="[object Object]" ng-reflect-min="Tue Jan 04 2022 16:02:30 GMT+0" ng-reflect-required="" ng-reflect-name="date" ng-reflect-type="type" data-test-id="date" min="2022-01-04" id="mat-input-2"
                    aria-invalid="false" aria-required="true"><mat-datepicker ng-reflect-calendar-header-component="class pU{constructor(e,t,n,a){"></mat-datepicker><span class="mat-form-field-label-wrapper"><!--bindings={
  "ng-reflect-ng-if": "false"
}--></span></div><!--bindings={
  "ng-reflect-ng-if": "0"
}-->
              </div><!--bindings={
  "ng-reflect-ng-if": "false"
}-->
              <div class="mat-form-field-subscript-wrapper" ng-reflect-ng-switch="hint"><!--bindings={
  "ng-reflect-ng-switch-case": "error"
}--><!--bindings={
  "ng-reflect-ng-switch-case": "hint"
}-->
                <div class="mat-form-field-hint-wrapper ng-tns-c10-2 ng-trigger ng-trigger-transitionMessages ng-star-inserted" style="opacity: 1; transform: translateY(0%);"><!--bindings={
  "ng-reflect-ng-if": ""
}-->
                  <div class="mat-form-field-hint-spacer"></div>
                </div>
              </div>
            </div>
          </mat-form-field></div>
      </maja-location-datepicker><!--bindings={
  "ng-reflect-ng-if": "false"
}--><maja-passengers-picker arrayname="passengers" class="search-form__input" ng-reflect-label="Passengers" ng-reflect-parent="[object Object]" ng-reflect-array-name="passengers" ng-reflect-passenger-categories="[object Object],[object Object">
        <div class="passengers-picker"><mat-label class="label">Passengers</mat-label><mat-form-field appearance="outline"
            class="mat-form-field ng-tns-c10-3 mat-primary mat-form-field-type-mat-input mat-form-field-appearance-outline mat-form-field-can-float mat-form-field-should-float" ng-reflect-appearance="outline">
            <div class="mat-form-field-wrapper">
              <div class="mat-form-field-flex"><!--bindings={
  "ng-reflect-ng-if": "true"
}--><!---->
                <div class="mat-form-field-outline ng-tns-c10-3 ng-star-inserted">
                  <div class="mat-form-field-outline-start"></div>
                  <div class="mat-form-field-outline-gap"></div>
                  <div class="mat-form-field-outline-end"></div>
                </div>
                <div class="mat-form-field-outline mat-form-field-outline-thick ng-tns-c10-3 ng-star-inserted">
                  <div class="mat-form-field-outline-start"></div>
                  <div class="mat-form-field-outline-gap"></div>
                  <div class="mat-form-field-outline-end"></div>
                </div><!--bindings={
  "ng-reflect-ng-if": "1"
}-->
                <div class="mat-form-field-prefix ng-tns-c10-3 ng-star-inserted"><mat-icon class="passengers-picker__user-icon mat-icon notranslate mat-icon-no-color" matprefix="" role="img" svgicon="iconUser" aria-hidden="true"
                    ng-reflect-svg-icon="iconUser"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 18.591 21.247" fit="" preserveAspectRatio="xMidYMid meet" focusable="false">
                      <path
                        d="M13.014,11.951c-1.191,0-1.764.664-3.718.664s-2.523-.664-3.718-.664A5.579,5.579,0,0,0,0,17.529v1.726a1.992,1.992,0,0,0,1.992,1.992H16.6a1.992,1.992,0,0,0,1.992-1.992V17.529A5.579,5.579,0,0,0,13.014,11.951Zm4.249,7.3a.666.666,0,0,1-.664.664H1.992a.666.666,0,0,1-.664-.664V17.529a4.252,4.252,0,0,1,4.249-4.249c.813,0,1.623.664,3.718.664s2.9-.664,3.718-.664a4.252,4.252,0,0,1,4.249,4.249ZM9.3,10.624A5.312,5.312,0,1,0,3.984,5.312,5.311,5.311,0,0,0,9.3,10.624Zm0-9.3A3.984,3.984,0,1,1,5.312,5.312,3.99,3.99,0,0,1,9.3,1.328Z">
                      </path>
                    </svg></mat-icon></div>
                <div class="mat-form-field-infix"><input class="mat-input-element mat-form-field-autofill-control cdk-text-field-autofill-monitored" matinput="" readonly="true" required="" ng-reflect-required="" ng-reflect-value="1"
                    ng-reflect-readonly="true" id="mat-input-3" aria-invalid="false" aria-required="true"><span class="mat-form-field-label-wrapper"><!--bindings={
  "ng-reflect-ng-if": "false"
}--></span></div><!--bindings={
  "ng-reflect-ng-if": "1"
}-->
                <div class="mat-form-field-suffix ng-tns-c10-3 ng-star-inserted"><mat-icon class="passengers-picker__expand-icon mat-icon notranslate material-icons mat-icon-no-color" matsuffix="" role="img" aria-hidden="true"> expand_more
                  </mat-icon></div>
              </div><!--bindings={
  "ng-reflect-ng-if": "false"
}-->
              <div class="mat-form-field-subscript-wrapper" ng-reflect-ng-switch="hint"><!--bindings={
  "ng-reflect-ng-switch-case": "error"
}--><!--bindings={
  "ng-reflect-ng-switch-case": "hint"
}-->
                <div class="mat-form-field-hint-wrapper ng-tns-c10-3 ng-trigger ng-trigger-transitionMessages ng-star-inserted" style="opacity: 1; transform: translateY(0%);"><!--bindings={
  "ng-reflect-ng-if": ""
}-->
                  <div class="mat-form-field-hint-spacer"></div>
                </div>
              </div>
            </div>
          </mat-form-field>
          <div class="passengers-picker__popup"></div>
        </div>
      </maja-passengers-picker></div>
    <div class="form__row"><maja-button class="btn btn-full-width btn-bg-monocolor search-form__submit" data-test-id="search-journey-button" _nghost-ucn-c9=""><button _ngcontent-ucn-c9="" mat-flat-button="" class="mat-flat-button"
          ng-reflect-disabled="false" ng-reflect-ng-class=""><span class="mat-button-wrapper"><span button-label=""> Search journey </span></span>
          <div class="mat-button-ripple mat-ripple" matripple="" ng-reflect-centered="false" ng-reflect-disabled="false" ng-reflect-trigger="[object HTMLButtonElement]"></div>
          <div class="mat-button-focus-overlay"></div>
        </button></maja-button></div>
  </div>
</form>

Name: mc-embedded-subscribe-formPOST https://trainplanet.us10.list-manage.com/subscribe/post?u=c3c4e8b6ccb1156332d037622&id=97bb858e11

<form action="https://trainplanet.us10.list-manage.com/subscribe/post?u=c3c4e8b6ccb1156332d037622&amp;id=97bb858e11" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"
  novalidate="novalidate">
  <div id="mc_embed_signup_scroll">
    <h2 style="color:#fff;">Subscribe to our newsletter</h2>
    <p style="line-height:1.3em;font-size:14px; margin-bottom:15px">Get the latest news and articles about traveling by train and Interrail directly to your inbox.</p>
    <div class="mc-field-group">
      <input type="email" value="" name="EMAIL" class="required email newsletter-email-input" id="mce-EMAIL" placeholder="E-mail" aria-required="true">
    </div>
    <div class="mc-field-group input-group">
      <ul>
        <li><input class="newsletter-checkbox required" type="checkbox" value="1" name="group[29][1]" id="mce-group[29]-29-0" aria-required="true"><label for="mce-group[29]-29-0" style="line-height:1.3em;font-size:14px; margin-bottom:15px">Yes, I
            would like to receive communications by email.</label></li>
      </ul>
    </div>
    <div id="mce-responses" class="clear">
      <div class="response" id="mce-error-response" style="display:none"></div>
      <div class="response" id="mce-success-response" style="display:none"></div>
    </div> <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
    <div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="b_c3c4e8b6ccb1156332d037622_97bb858e11" tabindex="-1" value=""></div>
    <div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button newsletter-button"></div>
  </div>
</form>

Text Content

 * Tickets
 * Interrail
   * Buy
   * What is Interrail?
   * Digital content
 * Guides
   * Travel Guides
   * Travel Routes
   * Tips by TrainPlanet
   * Travel Stories
 * Gift Certificate
 * Business
 * Support

Select Page
 * Tickets
 * Interrail
   * Buy
   * What is Interrail?
   * Digital content
 * Guides
   * Travel Guides
   * Travel Routes
   * Tips by TrainPlanet
   * Travel Stories
 * Gift Certificate
 * Business
 * Support

 * English
   * Svenska



FacebookInstagram


HI, WHERE DO YOU WANT TO GO?

 One way

 With return

 Interrail
?
From
From *


To
To *


Departing

Passengers
expand_more


Search journey


Please enable JavaScript to continue using this application.



BORÅS OR BUDAPEST? YOU CHOOSE! 

Would you like to book a train to work, a city holiday to Paris or maybe a month
of interrailing in the Balkans? Whatever you are looking for, you will find it
with us, Sweden’s leading train travel agency. 


AUTHORIZED RETAILER

We partner with, and sell tickets from over 100 travel operators in Sweden and
Europe. More choices makes it easy for you to choose the best and cheapest
option.


SAME TRAIN. JUST MORE SMOOTH.

With us you can conveniently and securely book your next trip and pay with
Klarna, the most popular payment method on the market. Book today, travel
tomorrow and pay in two weeks.


TAKE A LOOK AT OUR TRAVEL GUIDES


BERN


MUNICH


ROME


FRANCE


NAPLES


IRELAND

Read more




DISCOVER EUROPE BY TRAIN

With an Interrail Pass you get
access to practically unlimited travel with most major train operators in
Europe. Easily get to - and from - almost anywhere. It
does not matter how much you travel, the price remains just as low regardless.

Read more and book today!


94% CUSTOMER SATISFACTION

Since its establishment, 5821 of our customers have rated us and on
average an astounding 94.3% are satisfied.


50 000+ CUSTOMERS

You are in good company. Over 50,000 travelers in Sweden
have bought their trip through us.


BOOK SECURELY

Our entire website and cash register are encrypted, and your personal data
is processed according to the GDPR.


OUR TIPS ON TRAVEL ROUTES


SPANISH TURN


HIKING TRIP


SKI TRIP


DREAM VACATION FOR KIDS


THREE WEEKS IN ITALY


VIVE LA FRANCE

Read more




PAY INSTANTLY

Direct payment,
bank transfer and card.


PAY LATER

Shop now,
pay in peace later


DIVIDE

Partial payment,
pay now and then.

Book your trip now!


WITH OUR PLANET IN MIND

Take the train and cut down on your emissions.

Air travel is now the fastest growing contributor to global warming. Avoiding
airplanes when there are good alternatives available is probably the most
significant action an individual can take to reduce their carbon footprints. The
average airliner emits about 285 grams of CO2 per passenger and kilometre.
Trains emit only around 14 grams. With some trains you can travel a full 300
kilometres and only release a single gram of CO2.

Air travel is now the fastest growing contributor to global warming. Avoiding
airplanes when there are good alternatives available is probably the most
significant action an individual can take to reduce their carbon footprints. The
average airliner emits about 285 grams of CO2 per passenger and kilometre.
Trains emit only around 14 grams. With some trains you can travel a full 300
kilometres and only release a single gram of CO2.

Take the train and cut down on your emissions. 

Air travel is now the fastest growing contributor to global warming. Avoiding
airplanes when there are good alternatives available is probably the most
significant action an individual can take to reduce their carbon footprints. The
average airliner emits about 285 grams of CO2 per passenger and kilometre.
Trains emit only around 14 grams. With some trains you can travel a full 300
kilometres and only release a single gram of CO2.

Read more


SOME OF OUR PARTNERS







SOME OF OUR PARTNERS










WHERE WILL YOU GO NEXT?

Find your new favourite place.


LATVIA



...


ESTONIA



...


NORWAY



...


FINLAND



...


SWEDEN



...


DENMARK



...


GERMANY



...


NETHERLANDS



...


FRANCE



...


SPAIN



...


ITALY



...


PORTUGAL



...


CROATIA



...


AUSTRIA



...


BOSNIA AND HERZEGOVINA



...


BELGIUM



...


BULGARIA



...


GREECE



...


IRELAND



...


LITHUANIA



...


LUXEMBOURG



...


MONTENEGRO



...


POLAND



...


ROMANIA



...


CZECH REPUBLIC



...


NORTH MACEDONIA



...


SLOVAKIA



...


SWITZERLAND



...


GOTHENBURG



...


SERBIA



...


SLOVENIA



...


TURKEY



...


GREAT BRITAIN



...


HUNGARY



...


HALLSTATT



...


VIENNA



...


ABISKO



...


STOCKHOLM



...


ÖSTERSUND



...


AMSTERDAM



...


BERGEN



...


OSLO



...


BERLIN



...


MUNICH



...


BERN



...


BRUSSELS



...


BILLUND



...


COPENHAGEN



...


BUDAPEST



...


HELSINKI



...


KRAKÓW



...


WARSAW



...


LESCE BLED



...


LJUBLJANA



...


LISBON



...


MADRID



...


SAN SEBASTIÁN



...


PARIS



...


REIMS



...


SPLIT



...


ZAGREB



...


ROME



...


PESCHIERA DEL GARDA



...


ZERMATT



...


PRAGUE



...


NAPLES



...


SALZBURG



...


PORTO



...


PULA



...


ROTTERDAM



...


ANTWERP



...


ZURICH



...


ÅRE



...


MALMÖ



...


KIRUNA



...


MORA



...


TRONDHEIM



...


SKAGEN



...


GDAŃSK



...


COLOGNE



...

Malmö
Portugal
Kiruna
Latvia
Mora
Paris
Lithuania
Cologne

Turkey
Split
Lisbon
Kraków
Prague
Zagreb
Rome
Hungary


 


DISCOVER EUROPE BY TRAIN

 


SUBSCRIBE TO OUR NEWSLETTER

Get the latest news and articles about traveling by train and Interrail directly
to your inbox.


 * Yes, I would like to receive communications by email.





HELP & INFORMATION

 * Help
 * Terms and conditions
 * Delivery & Returns
 * Interrail
 * Klarna

ABOUT TRAINPLANET

 * About us
 * Business
 * Press
 * Contact

FOLLOW TRAINPLANET

 * Facebook
 * Instagram
 * LinkedIn

© Trainplanet.com 2021 - Train Planet AB, 556614‑3102
We use cookies to ensure that we give you the best experience on our website. If
you continue to use this site we will assume that you are happy with it.Okay
When booking Interrail reservations all passengers count as adult. Change the
passengers to continue.