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

# Schedule when your Mac serves inference requests

> Set specific days and hours when your Mac serves requests. Outside scheduled windows, the provider disconnects and frees GPU memory for your own use.

By default, the provider runs whenever you start it and keeps running until you stop it. Scheduling lets you define time windows — specific days and hours — when your Mac should actively serve requests. Outside those windows, the provider disconnects from the coordinator and shuts down the inference backend, freeing GPU memory for other uses.

This is particularly useful if you want your Mac to serve overnight or during work hours when you are away from your desk, without having to remember to start and stop the provider manually.

## How scheduling works

When scheduling is enabled, the provider evaluates your configured windows each time it checks whether to serve. If the current local time falls inside a window, the provider connects and serves normally. If the current time falls outside all windows, the provider disconnects and stops the backend process.

Windows are defined in local time. Overnight windows are supported: if the end time is earlier than the start time (for example, `22:00` to `08:00`), the provider treats it as a window that spans midnight.

## Configuring via the macOS app

Open the Darkbloom menu bar app and click **Settings**. Under **Scheduling**, enable scheduling and add one or more time windows. Each window lets you pick the days of the week and a start and end time using a time picker.

Changes take effect immediately — the provider re-evaluates its schedule the next time the check interval fires.

## Configuring via provider.toml

You can also configure scheduling directly in the config file at `~/.config/eigeninference/provider.toml`. Add a `[schedule]` section with one or more `[[schedule.windows]]` entries.

### Basic example: weeknight serving

Serve every weeknight from 10 pm to 8 am the following morning:

```toml theme={null}
[schedule]
enabled = true

[[schedule.windows]]
days = ["mon", "tue", "wed", "thu", "fri"]
start = "22:00"
end = "08:00"
```

### Example: weeknights and full weekends

```toml theme={null}
[schedule]
enabled = true

[[schedule.windows]]
days = ["mon", "tue", "wed", "thu", "fri"]
start = "22:00"
end = "08:00"

[[schedule.windows]]
days = ["sat", "sun"]
start = "00:00"
end = "23:59"
```

### Disabling scheduling

Set `enabled = false` to disable scheduling without removing your configured windows. The provider will run continuously whenever it is started.

```toml theme={null}
[schedule]
enabled = false
```

## Window reference

Each `[[schedule.windows]]` entry accepts the following fields:

| Field   | Type             | Description                                                                                     |
| ------- | ---------------- | ----------------------------------------------------------------------------------------------- |
| `days`  | array of strings | Days the window applies to. See day values below.                                               |
| `start` | string           | Window start time in 24-hour `HH:MM` format.                                                    |
| `end`   | string           | Window end time in 24-hour `HH:MM` format. If earlier than `start`, the window wraps overnight. |

**Day values:** `"mon"`, `"tue"`, `"wed"`, `"thu"`, `"fri"`, `"sat"`, `"sun"`

<Note>
  Times are in your Mac's local timezone. The provider reads the system clock to evaluate windows, so changing your Mac's timezone will shift when windows activate.
</Note>

## Multiple windows

You can define as many `[[schedule.windows]]` entries as you like. The provider is active whenever the current time falls inside any one of them. Windows do not need to be contiguous or non-overlapping.

## Applying config changes

After editing `provider.toml` directly, restart the provider for changes to take effect:

```bash theme={null}
darkbloom stop
darkbloom start
```

If you are using the macOS app, changes made in **Settings** are applied to the config file automatically and do not require a manual restart.
