Skip to Content

Creating Factory/Holiday Calendar

This tutorial describes step-by-step procedure of creating and adding a new holiday to holiday and factory calendar.

Note: It is not recommended to make any changes to the factory calendar in a production system.

All the calendar data should be maintained in a customizing system.

Updates are done via transports from the customizing system.

As a special case a customizing client in the productive system can be established.

Changes in the customizing client will then directly affect the productive system, as the calendar data is client-independent.

SAP Calendar:

SAP calendar master consists of three separate sub-objects which are inter-linked to each other:

  • Public Holidays,
  • Holiday Calendar and
  • Factory Calendar.

Public holidays :

Public holidays can be defined and be combined into holiday calendars.

Public holidays describe the statutory holidays for a particular country or region within a country.

Types of Public holidays:

  • Fixed date
  • Fixed day of week from a specific date
  • Specific number of days before or after Easter (Sunday)
  • Easter Sunday
  • Moveable holiday (with individual specification of dates during each specified year).

For holidays with fixed date (such as Christmas) and moveable holidays it is possible to specify simple rules guaranteeing the holiday if it falls on certain days of the week (Thu, Fri, Sun, Sat/Sun). For instance, Christmas day public holiday may be moved to the next working day if it falls on a Saturday or Sunday.

Holiday calendar :

Holiday calendar is assigned to each factory calendar.

Factory calendar

Factory calendar contain company specific dates such as alternate working Saturdays and holidays.

T-Code  :     SCAL

IMG SPRO -> Time Management -> Work Schedules

Step 1: Create Public Holidays

  1. Select the radio button Public holidays.
  2. Click Change button  .
  3. On Change Public Holidays: Overview screen click Create button  .
  4. A pop up window appear to select the Type of Public Holiday.

Type of Public Holidays

  1. with fixed date: This public holiday falls on the same date every year (e.g. Christmas Day).
    1. Enter the Public Holiday Definition.
      1. Day (e.g. 25)
      2. Month (e.g. 12)
      3. Guaranteed : specify whether the public holiday should be moved or not if it falls on a weekend.
        1. Not Guaranteed: Indicates that the public holiday should not be moved if it falls on a weekend.
        2. Thursday, Friday, Sunday, Saturday/Sunday: If the public holiday is to be “guaranteed”, i.e., should be a day off in any case, you have to specify the workday to which the public holiday should be moved.
    2. Enter the Public Holiday Attributes:
      1. Sort Criterion: use this to display logically related holidays in a block, e.g. all holidays for a country.
      2. Religious Denomination: (e.g. Christianity).
      3. Public Holiday Class: this specifies the holiday type. It can be used to determine the groups of holidays and normal days. (e.g. ‘1’ is ordinary public holiday).
      4. Give Long/Short Holiday Names.
    3. Click Create icon  .
  2. Floating Public Holiday: This public holiday is not fixed. It must be defined explicitly each year. (e.g. Vesak Full Moon Poya Day).
    1. Enter the Public Holiday into relevant boxes: Year/Month/Day (e.g. 2012, 05, 05).
    2. Enter the Public Holiday Attributes and click Insert Date icon.

Step 2: Create Holiday Calendar

To assign public holidays in a holiday calendar, we need to maintain one or more holiday calendars to accommodate the differing holiday schedules of our company.

  1. Select the radio button “Holiday Calendar”.
  2. On Change Public Holiday Calendar: Overview screen click Create button  .
  3. Enter the Calendar ID and the Name of the calendar. A holiday calendar is identified in the system by a two-character calendar ID.
  4. Enter the validity of the calendar.

Assign Holidays

  1. Click on the Assign Holiday button to assign the holiday.

  1. From the Insert Public Holidays into Holiday Calendar screen, search for the respective calendar and select the holidays you want to allow.
  2. Click on the Assign Button.
  3. The public holiday gets added; click on save button to save the holiday calendar.
  4. Acknowledge all the messages.

Step 3: Define the Factory Calendar


  1. Select the working days and assign a holiday calendar to factory calendar.
  2. Select the radio button “Factory Calendar”.
  3. Enter the Factory Calendar ID (same as the Holiday Calendar) and the Factory Calendar Name.
  4. Enter the Holiday Calender ID.
  5. Save.

Special Rules:

Special rules are used to define a date (or periods) as a holiday or as a workday, which is not maintained in the holiday calender (which is applicable for that year only).

In the Public Holiday definition you can determine if a holiday should be moved if it falls during weekends.

You can assign this special rules accessing the “Change Factory Calendar: Details” :: Special Rules button.

scal_srule_Layer 3.png

  1. Go to Factory calendar (change) –> change calendar –> Special rules.
  2. Enter the date and specify if it is a holiday or workday, then save.
  3. The Special rules have higher priority than holiday calendar holidays or workdays.

Finally, click Year Overview and check for the dates.


Final Step: Transport the Calendar

All changes made to the holiday or factory calendar must be transported manually.

  1. Go to SAP Calendar: Main Menu.
  2. Select one of the sub-objects and click Transport button  .

Calendar Functions

Once the SAP Calendar is configured properly, you can use this data to perform various types of calculations.

SCAL function group consists of some predefined function modules that can be use to determine whether or not a given date is a working day, holiday, etc.

Function Module Description

Computes the day of the week for a given date. Day values are calculated as 1 (Monday), 2 (Tuesday), and so on.


Computes the day of the week just like DATE_COMPUTE_DAY; also returns the day value as text (e.g., TUESDAY, etc.).


Calculates the factory date value for a given date. Also provides an indicator that confirms whether or not the given date is considered a working day according to the selected factory calendar.


Determines the week of the year for the given date. For example, the date 9/13/2010 would be the 37th week of the year 2010.


Converts a factory date value back into a date object.


Tests to determine whether or not a given date is a holiday based on the configured holiday calendar.

WEEK_GET_FIRST_DAY Calculates the first day of a given week.

As December comes to a close, The new year is just around the corner, and it’s a good time to maintain your Factory Calendar for the coming year (if you haven’t already done so); I hope this simple guide will help you. 🙂

You must be Logged on to comment or reply to a post.
  • Very informative document Kaushalya!

    Perhaps worth to add here that in a global environment You also need to be careful with this not to move unwanted/non-validated changes through. For validating of such I use SCU0 as follows:

    Trigger SCU0 in i.e. Development Client

    • Select ‘SAP Reference IMG’ and press ‘Create’
    • In 'Selection by' pop-up choose ‘Select activities’
    • In IMG selection tree drill down to ‘Maintain Calendar’, select it and press Enter
    • Give description for the comparison run, select R/3 connection as Your Production environment and press ‘Full Comparison'
    • In the outcome, 'red #' shows the differences between the selected environments and to see the actual difference set cursor to required line (i.e. to table TFACD), press ‘Comparison’ and in a coming pop-up press ‘No’
    • Many of the tables tent to have a lot of entries so to see the difference only You may want to use Filter-button and untick 'Identical' option