Since the last update two month ago we added new import options, public transport mode preferences and many more improvements to KDE Itinerary, and it got featured prominently on the awesome new KDE for Travelers page.

New Features

Importing online tickets

The various options to import data into Itinerary have been consolidated behind a single global menu action.

Itinerary's import action popup offering to import from file, clipboard, barcode scan or DB and SNCF online tickets.
Itinerary's import options.

A new way to import online railway tickets has been added as well. Using the booking reference and passenger name or the corresponding app import URLs we can now retrieve the booking details from the operator directly.

This is currently only available for Deutsche Bahn and SNCF. For adding more operators we again rely on your input in identifying the corresponding APIs and URLs of operators offering that feature.

Transport mode preferences

In all places where you can perform online searches for public transport journeys it is now also possible to specify preferred modes of transport (long distance or local trains, rapid transit, buses, etc).

Itinerary's train trip search providing preferences for using different transport modes.
Transport mode preferences when manually adding a train trip.

This is for example useful if you have a ticket that is only valid for certain modes of transport.

Attached documents

While PDF documents for reservations have been attached to the corresponding timeline entries since quite some time in Itinerary, this is now also done for passes or program membership cards. Automatic attaching is also no longer limited to PDF files (and Apple Wallet passes, but those are somewhat special anyway), but is now also done for email messages.


Many of the changes mentioned here have been motivated by the travel around KDE Akademy 2023, and several ideas on how to evolve Itinerary have been discussed and developed there, as I have written about previously.

One particular highlight are the various integration points with federated infrastructure using ActivityPub and Matrix that Carl and Tobias presented at Akademy.

Itinerary can now import ActivityPub events e.g. from Mobilizon directly, and is sharing more live location details over Matrix (which yet has to be specified in MSCs).

Neochat chat showing a small map with a shared live location and an arrow pointing in the current direction.
Neochat showing the heading of a shared live location from Itinerary.

Infrastructure Work

Route and line names

In public transport data there is a difference between line and route names. Lines are a general service between two or more locations, a route is one specific vehicle traveling on that line. Long distance services are usually referred to by a route name or number, while for local rapid transit services the line name or number is more commonly used.

Unfortunately both types of names are not necessarily recognizable as what they are and are used more or less interchangeably. That’s confusing for a human reader but even more so for automated processing.

To improve dealing with this KPublicTransport can now configure much more fine-grained how line and route names should be mapped from query results for each backend service, which brings us a number of benefits:

  • Improved merging of data from different sources.
  • More consistent display of line/route information, closer to what would be expected on the ground.
  • Coach layout data for some regional and local services in Austria and Germany.

The last point is a bit unexpected, but for vehicle layout data we need the exact route name or number, and as mentioned above, for local services that is usually not the commonly used one.

Itinerary's coach layout page showing a night train with sleeper, couchette and car transport cars.
Coach layout also supporting car transport cars now.

The coach layout rendering needed a few fixes for this as well, as it wasn’t handling certain scenarios that commonly don’t occur in long distance services, such as trains consisting solely of control cars.

Line icons for local and long distance trains

KPublicTransport provides line logos for rapid transit systems obtained via OSM and Wikidata since quite some time already.

This has now been extended to also cover local and long distance trains, which meanwhile have become available for some areas in Wikidata. This includes Swiss IC and IR lines as well as RE and RB lines in some parts of Germany for example.

Itinerary's alternative train connection search showing colorful line logos for IC lines in Switzerland.
Swiss intercity line icons.

If you want to have your favorite areas/trains covered, make sure the corresponding OSM route_master relation is linked to a Wikidata item which has the logo property set. The logo image used there should ideally be SVG or PNG, and should not be unnecessarily large.

Fixes & Improvements

Travel document extractor

  • New or improved extractor scripts for Aegean Air, Air Asia, Air France, Atlatos, Baeder Suite, blablacar, České dráhy, Color Line, Deutschlandticket, DJH, Estonian railway, FerriesInGreece, Finnlines , Fjord Line, Flixbus, Grimaldi Line, Koleje Malopolskie, KTEL Thesprotias, Latvian railway, Lithuanian railway, Lufthansa, onepagebooking, PKP, SAS, SBB, Slovak Lines, SNCB, spiritec, Tallink, Thalys, Trenitalia and Yorck Kino.
  • Improved generic extractors for Apple Wallet passes as well as ERA FCB, RCT2 and SSB tickets.
  • Support for decoding X-APPLE-STRUCTURED-DATA iCal properties, an Apple-specific extension containing structured data about reservations in calendar events.
  • Stricter plausibility checks on airport coordinates in Apple Wallet passes.
  • Support for more variants of underspecified bus reservations (variable arrival time, unknown bus or line name).
  • Improved comparison of partial traveler names.
  • Improved merging of “triangular” trip data.

All of this has been made possible thanks to your travel document donations!

As requested multiple times, we now also have a significantly updated and expanded documentation of the travel document extractor engine here.

Extractor script development tools

  • The filter scope is now properly editable.
  • Use a better default location for new extractor scripts.
  • Enum properties of e.g. ERA binary ticket data are now shown correctly decoded.

Public transport data

  • New or improved onboard API support for Aegean Air and DB Zugportal.
  • Support for altitude information in onboard API data.
  • Improved sanity checks for public transport journey responses, fixing spurious 100km jumps when walking in Nürnberg.
  • Fix support for the VRS public transport operator.

Itinerary app

  • Modernized public transport journey displays to use Kirigami MobileForms and improved handling of long disruption note texts.
  • Don’t split events that end shortly after midnight into two timline entries.
  • Fix a crash when opening files with certain special characters in their path (bug 470643).
  • Provide more context in Apple Wallet pass update notifications.
Popup notification informing about a flight gate change.
Notification for an Apple Wallet pass update.
  • Sort countries by their localized names in the address editor and the statistics page.
  • Implement language fallback for Apple Wallet pass translation catalog selection, and fix handling of empty catalog entries.
  • Show more details on the bus reservation page, and fix map display at the arrival location.
  • Fix exported calendar events not being editable on Android.
  • Fix importing of boat or ferry reservations from the calendar.
  • Fix updating details pages after editing.
  • Boat/ferry reservations as well as generic tickets are now editable.
  • Show validity time range on the pass page and add a separate section for not yet valid passes.
  • Fix infinite loop in computing static location map arguments.
  • Add support for Californian SHC vaccination certificates.

How you can help

Feedback and travel document samples are very much welcome, and there are plenty of other things that can be done without traveling as well. The KDE Itinerary workboard or the more specialized indoor map workboard show what’s on the todo list, and are a good place for collecting new ideas. For questions and suggestions, please feel free to join us in the KDE Itinerary channel on Matrix.