DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
- Created by Swapnil Shah, last modified on Sep 09, 2025
OFBIZ-13235 - Getting issue details... STATUS
Introduction: Why You Need the Apache OFBiz Calendar for Real-World Production Planning
In the previous guide, we explored the Calendar Function in Apache OFBiz and its role in helping manufacturers manage timelines and plan production effectively. Building on that foundation, this guide will demonstrate how to put it into practice.
In any manufacturing setup, planning without accounting for real-world constraints like shift timings, weekends, maintenance schedule or national holidays can quickly lead to missed deadlines and broken delivery commitments.
Apache OFBiz addresses this challenge through its Calendar function, allowing you to define actual working hours, non-working days, and exceptions such as plant shutdowns or holidays. When integrated with your Routing Tasks, this calendar ensures that production schedules are grounded in real capacity — not just theoretical durations.
This step-by-step guide walks you through how to:
- Set up a working calendar in Apache OFBiz.
- Define shift timings and weekly schedules.
- Mark holidays and exception days.
- Link calendars to machines and routing tasks.
- Ensure production schedules automatically align with real-world constraints.
Implementation Guide: Configuring Calendars in Apache OFBiz for Realistic Production Planning
Step 1: Prerequisites
Before jumping into calendar configuration in Apache OFBiz, make sure the foundational elements are in place. These prerequisites ensure that the upcoming steps are meaningful, seamless, and grounded in the broader manufacturing workflow.
1.1 Admin Access to Apache OFBiz
You’ll need certain elevated access as per the levels set within your organization, as setting up calendars, machines, Bill of Materials (BOM), and routing tasks require specific privileges.
1.2 Basic Understanding of the Manufacturing Module
A working knowledge of Apache OFBiz’s manufacturing module is essential. If you need a refresher, refer to the Manufacturing Module Guide — it covers the core concepts, key functionalities, and related attributes.
1.3 Understanding How to Create a Production Run
The effects of calendar configurations only become visible during a scheduled production run. So, it’s important to know how to create one. If you haven’t done this before, check out the Independent Production Run Guide.
1.4 Setting Up the Routing Tasks, Product and BOM
Before you can link routing tasks or production runs to calendars, you must define what is being produced — and how. That means setting up a Product along with its Bill of Materials (BOM) and Routing Tasks.
Why this matters: A calendar is useful only if there’s something scheduled on it. Your product and its BOM are the core inputs around which the rest of the manufacturing workflow revolves — including routing tasks, machine assignments, and production runs.
Need help? Refer to the Product and BOM Setup Guide for a step-by-step walkthrough. Also, if you need help defining routing tasks and linking them to products, refer to the Routing Task Setup Guide.
Step 2. Setting Up Weekly Working Schedule
Before we can generate accurate production timelines, we need to define when work actually happens. Starting with setting up a weekly working schedule. Apache OFBiz lets you create custom weekly calendars that reflect real-world shift patterns, working days and regional variations. This forms the baseline for everything that follows, from machine scheduling to final delivery dates. In this step, we’ll walk through how to set daily work hours, configure multiple shifts if needed and designate working versus non-working days.
2.1 First we begin with defining the daily work schedule. For this go to Manufacturing > Calendars > Weeks > New Week. You will reach the screen shown below.

2.2 Once you're on the screen, you'll see two main columns: on the left, simply enter the shift’s start time in 24-hour format (for example, 09:00). On the right, input the shift duration. Enter the duration in milliseconds (for example, an 8-hour shift = 28,800,000 milliseconds). On the other hand, the "Time Per Day" column on the right lets you set the total working capacity for each day. For half-days, just enter half the usual shift duration in milliseconds. Running double shifts? Simply double the value. For example, if you're operating two 8-hour shifts — say from 8 AM to 4 PM and then 6 PM to 2 AM — you'd enter 57,600,000 milliseconds (that’s 8 hours × 2 × 3,600,000).
2.3 Only the days where you specify working hours are treated as active workdays, the rest are automatically considered holidays. This setup offers flexibility for different regional calendars. For instance, in the Middle East, where Fridays and Saturdays are typically off, you'd enter working hours for Sunday through Thursday. In most other regions, you’d simply leave out Saturday and Sunday if they’re non-working.
2.4 Once you have entered the details and timings as per your schedule, click on Submit.
Note: Apache OFBiz does NOT account for break periods between shifts.
Next up: Now that we've defined which days should be working, it's time to account for days that normally would be, but aren't — like holidays and plant shutdowns. In the next step, we’ll configure exception days to reflect these non-working periods.
Step 3. Setting up Non Working Days
In the earlier steps, we defined daily working hours and set up the working days for each week. Now, it’s time to zoom out and take the next step — configuring the operational days for the month and marking any exception days (like public holidays or planned shutdowns). This layered approach builds a strong scheduling foundation by gradually expanding the scope: from hours in a day → to days in a week → to the bigger monthly picture.
3.1 Head over to Manufacturing > Calendars and click on New calendar to start setting up your monthly schedule. Fill in the required details as shown in the screenshot below and click on Update.
Note: The last field is labeled "Calendar Week ID", but the dropdown list will display descriptions instead of the actual IDs. Don’t worry, that’s its current behavior. Just pick the description that matches your weekly schedule and click Update to proceed.

3.2 After you have clicked Update and your calendar has been created, a new option labeled Exception Day will appear in the same window as shown below. Click on it, this will take you to the next screen where you can define specific non-working days.

3.3 Click on the calendar icon (as highlighted below) to open the date picker and begin selecting exception days.

3.4 Select the relevant dates to mark public holidays or planned plant shutdowns, as shown in the example below. These will be added as exception days to your calendar.

3.5 Once you select the dates, a confirmation message will appear and they’ll appear in the section just above as highlighted. For demonstration purposes, we've marked August 4th as a holiday in this example.

Exception days override the standard weekly schedule, ensuring production timelines exclude days when operations aren’t possible.
By capturing these non-working periods accurately, Apache OFBiz enhances scheduling precision and helps avoid overpromising on delivery dates.
Next up: Now that the calendar is fully configured, with both working days and holidays — we’ll link it to a specific machine (Fixed Asset) so the system can reflect its real-world capacity during scheduling.
Step 4. Linking Calendar to Machine
Now that your calendar reflects real-world working hours and holidays, it’s time to connect it to the machines that actually do the work. In Apache OFBiz, machines are modeled as Fixed Assets and linking them to your calendar ensures the system knows exactly when each machine is available for production.
This step brings scheduling one level closer to reality. Instead of assuming machines are always available, Apache OFBiz will now factor in their working calendar before assigning tasks thus laying the groundwork for realistic production planning.
4.1 Navigate to Accounting > Fixed Assets, then click on Find to search for the machine or equipment you want to assign a calendar to, as shown below.

4.2 Select the individual machine or a Machine Group that will perform the manufacturing operation (i.e., the Routing Task in Apache OFBiz).
A Machine Group is a collection of similar machines that can perform the same task interchangeably. Useful when you have multiple machines that can handle the same operation.
This step ensures the system knows when the machine is available, in alignment with the day-shift timings you defined earlier in Step 2.

4.3 If you selected an individual machine, you can skip ahead to Step 4.5.
However, if you chose a Machine Group (as shown in Step 4.2), click on the Children tab to view the individual machines within that group, as shown below.

4.4 On this screen, you’ll see a list of all machines within the selected group. For demonstration purposes, this group contains just one machine, but in a real setup, you'd see multiple machines listed one after another. Simply select the specific machine you want to assign the calendar to.

4.5 Once you’ve selected and opened the machine’s details screen, you’ll see a layout similar to the one shown below. From here, you can access various properties and attributes of the machine through the available tabs.

4.6 To link the calendar, scroll down to locate the “Calendar” field. Select the calendar you created in Step 3, then click Update. This step ties the machine’s capacity to the working schedule you’ve already defined.

4.7 After completing the above steps, a confirmation message will appear indicating that the calendar has been successfully linked to the machine as shown below.

Summary – Linking Calendar to Machine
In this step, we linked the previously configured calendar to a specific machine, represented in Apache OFBiz as a Fixed Asset. While Apache OFBiz doesn’t yet flag scheduling conflicts from overlapping production runs, this linkage allows the system to calculate timelines based on actual machine capacity.
Next up: With the machine now aligned to its operating calendar, we’ll connect it to a Routing Task — defining which machine performs which operation, and how long each task takes. This ensures that production schedules account not just for capacity, but also for task-specific setup and run times.
Step 5. Linking a Machine to a Routing Task
Now that the machine is linked to its working calendar, the next step is to tie it to a specific Routing Task — the individual steps that make up your production process. This connection tells Apache OFBiz which machine will perform which operation and ensures the scheduling engine accounts for both machine capacity and task-specific durations like setup and run time.
5.1 To begin, navigate to Manufacturing > Routing Tasks, click on Find, and select the relevant task from the list as shown below.
For this guide, we’ll use a demo task named Calendar Routing Task to demonstrate how the calendar integration works.

5.2 Once you've selected the task, a new window will open as shown below.
Set the Task Type to Manufacturing.
In the Fixed Asset ID field, choose the appropriate machine or machine group from the dropdown.
Next, enter the Estimated Setup Time (the time needed to prepare the machine) and the Estimated Run Time (the time required to produce one unit). Keep in mind that similar to the times as specified before, here too the time will be entered in milliseconds.
Once done, click Submit to save the task configuration.

While the system doesn't yet prevent overlapping machine usage, it accurately estimates completion dates based on available capacity and task duration. This sets the stage for future enhancements like conflict detection and visual scheduling tools.
Next up: With everything now configured — calendars, machines, and tasks — we’ll create a Production Run to see how Apache OFBiz brings it all together. This will allow us to verify how the system calculates realistic start and end dates based on the constraints we’ve defined.
Step 6. Verifying the Effect on the Production Run
Now that the calendar is linked to the machine and the machine, in turn, is linked to a routing task, now it’s time to test the full setup in action. In this step, we’ll create a production run and observe how Apache OFBiz uses the configured working hours, non-working days, and shift durations to calculate realistic start and end dates.
This is where everything comes together thus ensuring your production schedule reflects actual machine capacity and avoids planning around unavailable time.
6.1 To get started, navigate to Manufacturing > Job Shop > New Production Run.

Fill in the required details, including the Start Date — you’ll be able to select it using the calendar picker. Once you’ve chosen your date, click Done and then click Submit to create the production run.
In this example, we’ve selected August 1st as the start date, and chosen to manufacture 5 units as shown in the screenshot below.
6.2 After the production run has been created, Check the calculated completion date in the Production Run Summary section as shown in the screenshot below.
In this example, we had scheduled the production run to begin on Friday, August 1st and make 5 units of the product.
Here's the breakdown of time required:
- Setup time: 4 hours (a one-time operation before production starts).
- Run time per unit: 4 hours.
- Total run time: 4 hours × 5 units = 20 hours.
- Total time required: 4 hours (setup) + 20 hours (run) = 24 hours.
- Work capacity per day = 8 hours.
- Therefore the number of days required to complete the production run = 24 hours/8 hours = 3 days.
Now, here’s where the calendar setup comes into use:
- Saturday (Aug 2) and Sunday (Aug 3) are non-working days as per the configured weekly schedule.
- Monday (Aug 4) is marked as an exception day.
So the system skips these days while calculating available production time.
As a result, with August 1st as the starting date, the system considers August 1st, August 5th and August 6th as the available working days. Based on the configured shift timings, working capacity and exception day, it calculates the task's completion to be on Wednesday, August 6th, aligning with the real-world working schedule.

Quick Tip
Apart from the main steps above, here’s a handy tip to help you get a broader view of your production schedule — and troubleshoot more effectively if needed.
#1. You can navigate to Work Effort > Calendar, select Manufacturing Calendar as the Calendar Type, and click View to get a bird’s-eye view of all scheduled production activities for a selected week or month.
However, keep in mind: this is a high-level overview — it doesn’t show task completion dates, so ongoing tasks may not be fully reflected in the calendar view.

#2. Please note that the weekly calendar view may not always reflect ongoing tasks accurately, as it is still being improved. For a more reliable overview of your setup, we recommend using the monthly view. The calendar remains a helpful tool for quickly spotting potential conflicts, though its implementation may require further enhancements.

Conclusion
The calendar setup in Apache OFBiz empowers manufacturers to align production schedules with real-world constraints — including actual working days, shift timings, and holidays. By defining weekly patterns, setting exception days, and linking calendars to machines and routing tasks, teams can create schedules that reflect how operations truly run on the ground.
While it may not yet offer advanced features like visual planning or conflict detection, this setup provides a solid foundation for accurate, capacity-based scheduling — reducing errors and improving overall operational efficiency.