iTop Extensions

SLA with Coverage Windows

SLA with Coverage Windows
SLA computation based on Coverage Windows for User Request and Incident
SLA, Coverage Windows, Ticket, Holidays
itop-service-mgmt or itop-service-mgmt-provider, itop-sla-computation
For iTop versions older than 2.0.2 use a previous version of this component

This extension adds the capability to define Coverage Windows and Holidays in iTop and use them to compute Service Level Agreements (SLA) deadlines depending on the service and the coverage windows used in the customer contracts.


By default, SLA computation assumes that a given duration does not depend on the time it starts (i.e. computations are based on a 24×7 service).

If you would like to compute SLA deadlines (TTO and TTR) depending on the customer/service and the times at which your support teams are working, then you will have to implement Coverage windows.

This extension allows you to define:

  • Coverage windows (i.e. open hours within each day of the week)
  • Holidays (complete days which are closed for business, e.g. January 1st, May 1st…)
  • How the Coverage Windows and Holidays are related to each Ticket.

Once the Holidays and Coverage Windows are created in the system, the TTO and TTR deadlines are computed according to the corresponding coverage windows and exclude the holidays.

Revision History

Version Release Date Comments
2.0.2 2014-12-18 Do not overwrite the value of 'coverage_oql' in the configuration file if the value was modified.
2.0.1 2014-03-11 Integration of the German translation (thanks to ITOMIG GmbH
2.0.0 2014-03-04 Offical release of the 2.0.0 version which requires iTop 2.0.2 or newer, but supports nice formatting (i.e. 19:45 instead of 19,75) for the times. If you need a version compatible with iTop 2.0.1 or older, use Coverage Window Sla Computation (legacy)


Coverage Windows are defined as one single time frame per day (i.e. from 8h00 to 18h15). Defining a “lunch break” is not possible in this version of the extension.

Hollidays are not taken into account if no coverage window has been defined (or if none applies to the ticket).


iTop 2.0.2 or newer.


  1. Download the package: and expand the 2 folders “combodo-coverage-windows-computation”, “combodo-sla-computation” into the “extensions” directory of iTop.
  2. If you have already installed iTop, make sure that the configuration file config-itop.php in conf/production is NOT read-only.
  3. Point your web browser to http(s)://<your_itop_root>/setup and follow the wizard instructions. Make sure that you select the option to “Upgrade an existing iTop instance”:
  4. Finally check the module “Plug-in SLA computation with coverage windows for UserRequest and Incidents” in the list of extensions at the end of the interactive wizard. Then complete the installation.


Once the new module has been installed, the default configuration states that:

  • The Coverage Window applicable to a Ticket is defined, for each Service, on the Customer Contract.
  • There is just one global list of Holidays. Any Holiday defined is applicable to any Ticket.
        'combodo-sla-computation' => array (
                'coverage_oql' => 'SELECT CoverageWindow AS cw JOIN lnkCustomerContractToService AS l1 ON l1.coveragewindow_id = JOIN CustomerContract AS cc ON l1.customercontract_id = WHERE cc.org_id= :this->org_id AND l1.service_id = :this->service_id',
                'holidays_oql' => 'SELECT Holiday',

You can adjust the configuration parameters if you want to use different rules.

Parameter name Description Default Value
coverage_oql The OQL to retrieve the Coverage Window object to apply to a given ticket. If the query returns several Coverage Window objects, only the first one will be used. SELECT CoverageWindow AS cw JOIN lnkCustomerContractToService AS l1 ON l1.coveragewindow_id = JOIN CustomerContract AS cc ON l1.customercontract_id = WHERE cc.org_id= :this->org_id AND l1.service_id = :this->service_id
holidays_oql The OQL to retrieve the Holiday objects to apply to a given ticket. All the Holidays returned by the query will be taken into account for the computation. SELECT Holiday
The two OQL queries listed above are relative to a Ticket (the current ticket being processed). This means that all the placeholders :this->xxx refer to the corresponding fields of the Ticket.
You can also change the display format of the TTO and TTR deadlines by modifying the configuration parameter deadline_format in config-itop.php with the following value:
        'deadline_format' => '$date$ ($difference$)',

This will display the deadline date and the delay from now to the dealine.


Managing Coverage Windows

The menu “Coverage windows” in the module “Service management” displays all coverage windows defined in iTop. If none has been defined click on “Create a new coverage window”, otherwise click on “Create” to create a new one.

Hours are defined with a 24 hours range. For instance:
  • 7:30 pm must be typed 19:30
  • 6:45 am must be typed 06:45
  • full time is specifed as the range 00:00 to 24:00
  • if you want a day to be off, specify 00:00 to 00:00

Managing Holidays

The menu “Holidays” in the module “Service management” displays all holidays defined in iTop. If none has been defined click on “Create a new holiday”, otherwise click on “Create” to create a new one.

The Holiday Calendar allows you to group holidays (for example based on the country of your customers). This is a convenient way to simplify the queries required by a complex (multi-customer / multi-country) environment.

The OQL queries configured by default when installing the module do not use Holiday Calendars.

Select coverage windows for a customer

To change the coverage window of a customer contract, simply modify the contract and in the tab “Services” select the appropriate coverage window required for each service:

By default, if no coverage window is selected, the computation of deadlines will be done using a 24h*7 coverage window.

extensions/sla-computation_2_0.txt · Last modified: 2018/12/19 11:40 (external edit)
Back to top
Contact us