# Business Hours

The Business Hours component sends callers to different destinations depending on when they call. Drop it into a call flow to split traffic between office hours, after-hours, and holidays, and to fine-tune routing for any other time-based scenario your team needs.

![Business Hours component placed on the call-flow canvas](/images/pbx/business-hours-component-cfd.png)

## Time-based modes

When you configure the component, you pick one of three modes to decide how time is evaluated.

| Mode | What it does |
| --- | --- |
| Business Hours Configured for Time Zone | Reuses the office hours you have already saved for a given time zone. |
| Custom Business Hours | Defines schedules on the component itself, the same hours every day, different hours per day, or round-the-clock (24x7). |
| Custom Time Periods | Builds individual time periods when you need more granular control than a standard weekly schedule allows. |

:::note
The first mode relies on hours that already exist in the system. Set those up beforehand under **Call Control > Business Hours and Holidays**.
:::

## Configure the component

1. Add the Business Hours component to your call flow, then click it to open its settings.

   ![Opening the Business Hours component to begin configuration](/images/pbx/business-hours-cfd.png)

2. Choose the time-based mode that matches your schedule and fill in its settings. The steps differ by mode, follow the relevant section below.

3. Click the add button ![Add branch icon](/images/pbx/add-branch.png) on any branch to attach the next component and continue routing the call.

   ![Adding a component to a Business Hours branch](/images/pbx/branch-add-component-cfd.png)

### Use hours configured for a time zone

![Settings for the time-zone mode](/images/pbx/global-business-hours-cfd.png)

1. In the **Time-based Mode** list, select **Based on Business Hours Configured for the Time Zone**.
2. In the **Time Zone** list, choose the time zone whose saved hours you want to apply.

   :::tip
   The time zone you pick decides when each branch (Business Hours, Outside Business Hours, and Holidays) counts as active. Match it to the office location these hours belong to so calls route at the correct local times.
   :::

3. Optional: select **Ignore the Holiday Destination** to skip holiday routing.

   :::note
   With this option on, calls that arrive on a holiday follow the Business Hours or Outside Business Hours destination instead of the holiday one.
   :::

4. Click **Confirm** in the bottom-right corner. The chosen time zone and its time branches appear on the component.

   ![Time zone and branches shown on the configured component](/images/pbx/global-business-hours-done.png)

### Use custom business hours

![Settings for the custom business-hours mode](/images/pbx/custom-business-hours-cfd.png)

1. In the **Time-based Mode** list, select **Based on Custom Business Hours**.
2. In the **Time Zone** list, choose a time zone.
3. In the **Daylight Saving Time** list, turn the feature on or off.
4. Pick a business-hour type and enter its schedule to define your hours.

   :::note
   You can add up to **20** time periods each for business hours and for break hours.
   :::

5. Optional: switch **Holidays** on and add the dates you want to treat as holidays.

   :::note
   Up to **50** holidays are supported.
   :::

6. Click **Confirm** in the bottom-right corner. Your custom hours and their time branches appear on the component.

   ![Custom business hours and branches on the component](/images/pbx/custom-business-hours-done.png)

### Use custom time periods

![Settings for the custom time-periods mode](/images/pbx/custom-time-period-done.png)

1. In the **Time-based Mode** list, select **Based on Custom Time Periods**.
2. In the **Time Zone** list, choose a time zone.
3. In the **Daylight Saving Time** list, turn the feature on or off.
4. Optional: switch **Holidays** on and add your holiday dates.

   :::note
   Up to **50** holidays are supported.
   :::

5. Click **Confirm** in the bottom-right corner.
6. Click the add button ![Add branch icon](/images/pbx/add-branch.png) on the component to create and configure each custom time period.

   :::note
   Up to **50** custom time periods are supported.
   :::

   The time zone and its branches appear on the component.

   ![Custom time periods and branches, including the Default branch, on the component](/images/pbx/custom-business-hours-ddone.png)

   :::note
   The **Default** branch is the fallback: it catches any call that does not match one of your configured time conditions.
   :::

## Connect the branches

The component ships with built-in time branches such as **Business Hours**, **Outside Business Hours**, and **Holidays**. Each branch connects to exactly **one** downstream component, which handles the call whenever that branch is matched. You can connect any of the components below.

| Component | What it does |
| --- | --- |
| [Prompt](/pbx/call-flow-designer-guide/prompt/) | Plays an audio prompt or a text-to-speech message to the caller. |
| [Business Hours](/pbx/call-flow-designer-guide/business-hours/) | Adds another layer of time-based routing. |
| [Menu](/pbx/call-flow-designer-guide/menu/) | Offers callers a set of options and routes the call on the DTMF digit they press. DTMF (Dual-Tone Multi-Frequency) is the touch-tone signal a phone sends when the caller presses a key. |
| [User Input](/pbx/call-flow-designer-guide/user-input/) | Collects DTMF digits from the caller, usually paired with Condition to route on what was entered. |
| [Language](/pbx/call-flow-designer-guide/language/) | Switches the system-prompt language for the components that follow. |
| [Record](/pbx/call-flow-designer-guide/record/) | Starts recording once the caller connects to another party, with optional notice prompts, or disables recording for a call that would otherwise be recorded. |
| [Dial by Number](/pbx/call-flow-designer-guide/dial-by-number/) | Lets callers dial a number directly to reach their destination. |
| [Dial by Name](/pbx/call-flow-designer-guide/dial-by-name/) | An end component that lets callers reach a user by typing the first three letters of their name. |
| [Transfer](/pbx/call-flow-designer-guide/transfer/) | An end component that hands the caller to a set destination, with an optional prompt announcing the transfer. |
| [Hang Up Call](/pbx/call-flow-designer-guide/hang-up-call/) | An end component that disconnects the caller. |
| [Condition](/pbx/call-flow-designer-guide/condition/) | Routes calls according to logical expressions. |
| [Loop](/pbx/call-flow-designer-guide/loop/) | Repeats a group of components a set number of times or until a condition is met. |
| Internal Data Ops | Reads from and writes to the phone system's built-in database (PBX, short for Private Branch Exchange). See [Get Extension Presence Status](/pbx/call-flow-designer-guide/get-extension-presence-status/), [Set Extension Presence Status](/pbx/call-flow-designer-guide/set-extension-presence-status/), [Get Queue Agent](/pbx/call-flow-designer-guide/get-queue-agent/), [Get Queue Info](/pbx/call-flow-designer-guide/get-queue-info/), [Get Agent Status](/pbx/call-flow-designer-guide/get-agent-status/), [Set Agent Status](/pbx/call-flow-designer-guide/set-agent-status/), [Get System Info](/pbx/call-flow-designer-guide/get-system-info/), [Get System Capacity](/pbx/call-flow-designer-guide/get-system-capacity/), [Get Extension Info](/pbx/call-flow-designer-guide/get-extension-info/), and [Get Company Contact Info](/pbx/call-flow-designer-guide/get-company-contact-info/). |
| [Email Sender](/pbx/call-flow-designer-guide/email-sender/) | Sends email for real-time notifications, alerts, or user-specific information. |
| [Database Access](/pbx/call-flow-designer-guide/database-access/) | Runs SQL (Structured Query Language, used to query and update databases) against a database mid-call to read or update data. |
| [HTTP Request](/pbx/call-flow-designer-guide/http-request/) | Sends HTTP requests to external servers to exchange data with third-party services. |
