Mats Bryntse
14 June 2013

Customer Showcase: Copenhagen Airport

An airport is a very busy place and the Copenhagen Airport (“CPH”) is no exception. With 250,000 flights and over […]


An airport is a very busy place and the Copenhagen Airport (“CPH”) is no exception. With 250,000 flights and over 20 million passengers flying in and out of it every year, it’s easy to see that it must involve loads of different staff and machines to function properly. In the many companies involved in providing the service to operate CPH, there are in total over 22,000 employees. Since an airport is so resource intensive, using these resources efficiently is key. Good thing then, that CPH has been ranked as the most efficient airport in Europe seven times in the last nine years.

Last year, we were thrilled when the Planning Operations team at the airport contacted us about using Ext Scheduler to schedule the many check-in desks at the airport. Here is their story:


by Esben Kolind, Business Analyst at Copenhagen Airports.

In Copenhagen Airport (CPH), we are responsible for the daily allocation of check-in counters to the many airlines operating from CPH. In peak hours, all counters are in use, and mathematical optimisation methods are used to “solve the puzzle” and generate a plan that fulfils the needs and wishes of the airlines. In addition, it is often necessary to make manual adjustments to the plan on the day of operation due to delays, cancellations and aircraft changes.

Previously, the planning was done in Excel and a graphical visualisation of the daily plan (Gantt chart) was saved as a PDF. This PDF was then made accessible to the airlines and handling agents (who perform the check-in on behalf of the airlines) through a link on a website. Any later change to the plan was done manually in Excel through copy/paste of cells (prone to errors!) and the entire plan was then re-published.

Since summer 2012, CPH has used the Ext Scheduler to publish, visualise and modify the daily check-in allocation plans. The initial plan is saved in a database and can be modified through drag and drop functionality by selected CPH employees, directly in the browser. Airlines and handling agents can access the same website to see the allocation, which is also displayed on a big screen in the operation desk near the check-in counters (see images below). Furthermore, the new setup provides a lot of new functionality such as browsing between dates, zooming, data validation and undo.

Below are a few images of the overview TV screen located in the check-in desk area in Terminal 3.

Implementation details

With a little help from the Bryntum dev. team, we implemented our own subclass of the Ext Scheduler component. We use the grouping view to group all our counters (which are the “resources” in the scheduler terminology) by their Terminal. Since airlines always allocate a group of adjacent check-in counters, being able to drag and drop these groups rather than individual allocations, was crucial to us. We implemented this feature quite easily and also added support for constraining the dragging to either the x or y-axis by holding the shift key. Other than that, we found pretty much all other features we required to be supported by the Scheduler, like validation, zooming and export to PDF.

To keep the displayed data fresh on the screen for the observing users, we reload the store every 10 minutes using a simple setTimeout timer. Since the Scheduler supports variable row height, it was easy to add a birds eye view where all the rows have been sized to fit the screen size.

// Fits the rows to the available vertical space
fitRows : function () {

var containerEl = this.getSchedulingView().el,
containerHeight = containerEl.getHeight(),
groupHeaderHeight = containerEl.down('.x-grid-group-hd').getHeight(),
availableHeight = containerHeight - groupHeaderHeight,
fittedRowHeight = Math.floor(availableHeight / nbrTerminalDesks);


Our corporate IT policy mandates the use of IE9 and the scheduler supports it just fine with good performance. A screenshot of our implementation can be seen below:


Using the Scheduler, we have saved about two hours per week on planning the check-in allocation. A manual change to the plan which used to take 5-10 minutes, can now be performed in a few seconds by the duty managers, who are not very computer savvy. On top of that, the easy-to-use code of the component has allowed us to quickly make adjustments to the setup when needed.

Summing up, the use of Ext Scheduler for the check-in allocation in CPH has been a major success that has been very well received by all users within and outside the airport.


There is still a bit of room for optimization even when we use the Ext Scheduler. The floor staff (responsible for setting up the check-in desks) still need to go back to the office to make changes to the day plan. In 2014, we plan to provide iPads to the floor managers, allowing them to update the schedule on-the-go without having to sit behind a desk. We plan to use the Touch Scheduler for this job, with live updates pushed to each connected iPad using WebSockets. Perhaps material for a follow-up blog post...? 🙂

Customer Spotlight