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

# Filament Business Hours

> Manage business hours, with exceptions, in your Filament panel.

<span className="inline-flex items-center gap-1 rounded-full border border-amber-300 bg-amber-50 px-3 py-1 text-xs font-semibold text-amber-800 dark:border-amber-700 dark:bg-amber-950 dark:text-amber-300">
  ★ Paid · Commercial license
</span>

<p className="mt-3 text-lg text-gray-600 dark:text-gray-300">
  A complete solution for handling business hours — a rich form field, exceptions for holidays and special hours, a table column, and an infolist entry — built on <a href="https://github.com/spatie/opening-hours">spatie/opening-hours</a>.
</p>

<div className="flex flex-wrap gap-2 mt-3">
  <span className="dd-pill rounded-md px-2 py-1 text-xs font-mono">PHP ^8.3</span>
  <span className="dd-pill rounded-md px-2 py-1 text-xs font-mono">Filament ^5.0</span>
</div>

<div className="flex flex-wrap gap-3 mt-4">
  <a href="https://checkout.anystack.sh/filament-business-hours" className="inline-flex items-center gap-2 rounded-lg bg-[#84C225] px-4 py-2 font-semibold text-white no-underline hover:opacity-90">
    Buy on AnyStack →
  </a>

  <a href="/filament/business-hours/installation-v5" className="inline-flex items-center gap-2 rounded-lg border border-gray-300 px-4 py-2 font-semibold text-gray-800 no-underline hover:bg-gray-50 dark:border-gray-600 dark:text-gray-100 dark:hover:bg-gray-800">
    Installation
  </a>
</div>

<a href="https://www.youtube.com/watch?v=5gXI0v3BwAU" target="_blank">
  <img className="rounded-xl mt-4" src="https://raw.githubusercontent.com/andreia/filament-business-hours-docs/main/art/youtube_cover.jpg" alt="Filament Business Hours demo video" />
</a>

## Features

<CardGroup cols={2}>
  <Card title="Rich form field" icon="clock">
    * **Global Enable/Disable:** Toggle to quick enable/disable existing business hours
    * **Dynamic Time Slots:** Add multiple time ranges per day
    * **Timezone Support:** Built-in timezone selection with searchable dropdown
    * **Quick Toggles:** Enable/disable specific days with a single click
    * **Visual Feedback:** Clear visual indicators for open/closed status
    * **Flexible Layout:** Use Filament's available layout components for a responsive and customizable layout
  </Card>

  <Card title="Exceptions" icon="calendar-xmark">
    * **Date-based Exceptions:** Handle holidays, special hours, and closures
    * **Recurring Exceptions:** Set up annual recurring exceptions (e.g., Christmas)
    * **Date Ranges:** Define exceptions for specific date ranges
    * **Custom Labels:** Add descriptions to exceptions for better organization
  </Card>

  <Card title="Table column" icon="table-columns">
    Business days as interactive circles with open/closed color and tooltips.
  </Card>

  <Card title="Infolist entry" icon="circle-info">
    Formatted business hours with timezone and exceptions.
  </Card>

  <Card title="Widget" icon="gauge">
    Use as a standalone widget in your dashboard.
  </Card>

  <Card title="HasBusinessHours trait" icon="code">
    Adds a relationship plus helper methods — `isOpen()`, `nextOpen()`, `currentOpenRange()`, and more.
  </Card>

  <Card title="Cache" icon="bolt">
    Built-in caching for optimal performance.
  </Card>

  <Card title="Built on Spatie Opening Hours" icon="database">
    Every query/format method from `spatie/opening-hours` is available on top.
  </Card>
</CardGroup>

## Version compatibility

Use the version switcher above the sidebar to pick the docs matching your Filament version:

| Filament | Business Hours  |
| -------- | --------------- |
| 3.x      | 3.x             |
| 4.x      | 4.x             |
| 5.x      | 5.x (this page) |

## Requirements

* PHP 8.3+
* Filament 5

## Dependencies

Composer installs these automatically:

* [Spatie Opening Hours](https://github.com/spatie/opening-hours)
* [Filament Timezone Field](https://github.com/TappNetwork/filament-timezone-field)
