efa-m - Unofficial interface to the departure monitor


efa-m [-Lr] [-d] [-t hh:mm] [-l lines] [-p platforms] [-u url] [city] [type:]name


version 2.02


efa-m lists scheduled tram, bus and train departures at the location name.

For each departure, it shows

* scheduled departure time,
* delay in minutes,
* platform,
* line,
* expected occupation (range . o * !, if available), and
* destination.

If city is specified, name refers to a location within city. Otherwise, name must be self-contained. I.e., both efa Essen Hbf and efa "Essen Hbf" are valid. Note, however, than efa E Hbf works, but efa "E Hbf" does not.

By default, name refers to a stop, this can be changed by specifying type. Supported types are address and poi (point of interest).


-A, --auto-url, --discover-and-print

Probe all known EFA entry points for the specified stop. Print the first result which was not an error.

Note that this may take a while and will not necessarily return the best result. Also, using thi option by default is not recommended, as it puts EFA services under considerable additional load.

-d, --date

Show departures for date instead of today. May also be specified as

-D, --discover

Probe all known EFA entry points for the specified stop. Print the URLs and names of all entry points which did not return an error.

-L, --linelist

Do not show departures. Instead, list all lines serving the specified place. Note that this information may be incomplete -- only lines which are in service either at the time of the efa-m call or at the time specifed using --date and --time are guaranteed to be included.

-l, --line lines

Only show departures of lines (comma-separatad list, option may be repeated)


List supported EFA services with their URLs (see -u) and abbreviations (see -s).

-m, --mot motlist

Only show departures whose type appears in motlist (comma-separated list, this option may be repeated).

The following departure types ("modes of transport") are supported: zug, s-bahn, u-bahn, stadtbahn, tram, stadtbus, regionalbus, schnellbus, seilbahn, schiff, ast, sonstige

-o, --offset minutes

Ignore departures which are less than minutes from now.

-O, --output outputtypes

For each result, show additional information as specified by outputtypes. outputtypes is a comma-separated list, the -O/--output option may also be repeated. Each output type has both a short and long form, for instance both "-Or" and "--output=route" are valid.

The following output types are supported:

a / route_after

Show each departure's full route (timestamps and stop names) after the requested station.

b / route_before

Show each departure's full route (timestamps and stop names) before the requested station.

f / fullroute

Show each departure's full route (timestamps and stop names) before and after the requested station.

r / route

Show up to three stops between the requested station and the departure's destination. efa-m tries to display the three most important stops, however these are heuristically determined and may not be optimal.

m / messages

Show free-text messages associated with individual departures. These can include generic information such is bicycle transportation options or Wi-Fi availability, delay reasons, and more.

-p, --platform platforms

Only show departures at platforms (comma-separated list, option may be repeated). Note that the Bstg. / Gleis prefix must be omitted.

-r, --relative

Show relative departure times in minutes (i.e. the time difference between the departure and the time of the request). In this case, realtime data is already included.

-s, --service name

Short name of the EFA entry point. See Travel::Status::DE::EFA(3pm) and the --list option for a list of services.

-t, --time hh:mm

Show departures starting at time instead of now.

--timeout seconds

Set timeout for HTTP requests. Default: 10 seconds. Set to 0 or a negative value to disable it.

-v, --via station

Only show trains serving station after the requseted stop, and show the arrival time at station after the departure time at the current stop. station is matched against the "city stop" fields in each line's route. Regular expressions are also supported.


Show version information.


Normally zero. 1 means efa-m was called with invalid options, 2 indicates a request error from Travel::Status::DE::EFA(3pm).




* Class::Accessor(3pm)
* LWP::UserAgent(3pm)
* Travel::Status::DE::EFA(3pm)
* XML::LibXML(3pm)


efa-m uses the VRR EFA service by default, which seems to contain the greatest available set of information. However, some cities (e.g. Berlin or parts of Hamburg) are not supported there, and efa-m is not yet able to choose the appropriate EFA URL for these by itself. In these cases, you should find an appropriate EFA service using the -D/--discover option and then use -s service when making requests.

* EFA does not provide real-time data for the routes of requested departures. Hence, --via estimates the arrival time from scheduled departure and departure delay


Copyright (C) 2011-2023 by Birte Kristina Friesel <>


This program is licensed under the same terms as Perl itself.