Command Line Interface

The program accepts either a vertical AIMS “Crew Schedule” or an AIMS “Pilot LogBook report“ as input. These are available from the AIMS web interface at https://ezy-crew.aims.aero.

The “Crew Schedule” should generally be preferred since it includes accurate duty times, full crew, and non-flying duties. It does, unfortunately, lack details of the aircraft registration, including only the aircraft type, and data can only be downloaded in chunks of up to 31 days. To download it, go to Crew Schedule | My Schedule, select the required period, then click the Print button. The viewer that appears has an Export To button on its taskbar. Click this and select HTML.

The “Pilot Logbook report” can be downloaded in chunks of up to two years, and includes the aircraft registrations. Since it doesn’t include actual report and off duty times, these are approximated based on standard report and debrief times when using this input. To download it, go to Reports | Pilot LogBook report, set the required period and click Go. Again, the viewer has an Export To button, from which you should select HTML.

The following assumes that aims-convert has been installed via pip, pipx etc. and that this has added the aims entry point to somewhere that is included in your PATH environmental variable.

The script is written as a filter, i.e. it takes input from STDIN, writes to STDOUT and sends any error information to STDERR. In the examples below, replace aims_roster with the file path of your downloaded roster or logbook report.

eFJ output

$ aims efj < aims_roster

Writes an electronic Flight Journal to STDOUT. Regulatory night flying calculations are included. For easyJet pilots, airframe lookup is carried out — this may fail for very recent flights, in which case the airframe will be listed as ?-????:???? and will need to be updated manually.

iCalendar output

$ aims ical < aims_roster

Writes an iCalendar file to STDOUT. These can be uploaded to Google Calendar, Outlook etc. An option is provided to include “all day events” such as days off:

$ aims ical --ade < aims_roster

Each entry has an identifier built from the start time of the duty and a list of airports involved or, for all day events, the date and description of the duty. This means that re-uploading an iCalendar file should update your calendar correctly; there is, however, no mechanism for removing entries that have been deleted from your roster since the last upload, so this will have to be done manually.

CSV output

$ aims csv < aims_roster

Writes a comma separated value file following Excel conventions to STDOUT. This can be used as a basis for getting data in to a spreadsheet based logbook — all mainstream spreadsheets are capable of importing Excel CSV files.

Roster output

$ aims roster < aims_roster

Outputs a roster in a text based diary format. Output looks something like this:

11/02/2024 06:00-12:34 BRS-ADTY-GVA-BRS 3:20/6:34
26/02/2024 06:35-15:00 BRS-AMS-BRS-GLA-BRS 5:15/8:25
27/02/2024 04:30-12:30 ESBY 0:00/8:00
28/02/2024 08:00-16:00 OLAD 0:00/8:00

The two durations at the end of the line are the expected block hours and expected duty hours. I use this format with emacs diary mode and to produce predictive FTL charts.