> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apifycloud.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Business hours & availability

> Configure when calls can be placed and what users see outside of hours

Business hours let you restrict when the call button is active and
customise what users see outside of your operating window. Configuration
lives at two levels — app-wide defaults and per-profile overrides — so
teams with multiple queues or regions can mix and match without
duplicating data.

## Where it's configured

In the console under **Call Profiles**, each profile has a **Business
hours** section with two modes:

* **Inherit from app** — use the app-level schedule (the default)
* **Custom** — override with a schedule specific to this profile

App-level hours live in **Settings** and apply to every profile that
inherits.

## What you can configure

<AccordionGroup>
  <Accordion title="Timezone">
    All times are stored and evaluated in a single timezone per schedule.
    Pick the one your team operates from (e.g. `America/New_York`,
    `Europe/Madrid`). Daylight saving is handled automatically.
  </Accordion>

  <Accordion title="Weekly schedule">
    Seven rows (Monday – Sunday) with one or more open/close windows per
    day. A day with zero windows is treated as closed. Split shifts
    (e.g. 9:00–13:00 and 15:00–19:00) are supported by adding two
    windows to the same day.
  </Accordion>

  <Accordion title="Holidays & exceptions">
    A list of specific dates that override the weekly pattern. Use this
    for public holidays, company events, or one-off closures. Each entry
    has an optional label shown to the user ("Closed for holidays") and
    can either close the day entirely or specify custom hours.
  </Accordion>

  <Accordion title="24/7 mode">
    For always-on teams, toggle 24/7 on the app or profile. The business
    hours gate is disabled and the call button is always active.
  </Accordion>
</AccordionGroup>

## What the user sees

Outside of hours, the call button is disabled and the widget shows
your closure message. Visitors can still see your branding and any
other content you've placed in the widget.

The closure message is configurable in **Call Studio** — place a
`paragraph` block with the text you want, conditional on the `closed`
state.

## Inheritance rules

When a profile is set to **Inherit from app**:

* The profile uses whatever is currently configured at the app level.
* Changes to the app schedule take effect immediately for inheriting
  profiles — no per-profile update needed.

When a profile is set to **Custom**:

* The profile has its own fully independent schedule.
* App-level changes do not affect this profile.
* You can switch back to inherit at any time; custom hours are
  preserved but not applied while inheriting.

## Timezone handling for the user

The user's own timezone is **not** consulted. Business hours are
evaluated in the schedule's timezone only. If you want to display
"open hours in your local time" in the widget, use Call Studio text
interpolation with the user's locale — contact support if you need
help with this pattern.

## What's next

<CardGroup cols={2}>
  <Card title="Events" href="/guides/click-to-call/events">
    Listen for the `widget_loaded` event to know when visitors arrive.
  </Card>

  <Card title="Embedding" href="/guides/click-to-call/embedding">
    URL context and pre-fill.
  </Card>
</CardGroup>
