---
url: /ja/guides/schedule.md
---
# スケジュールタスク

**cron 式**を使って、決まった時刻に Bot へ仕事を 1 つ任せます: レポートの送信、外部データのチェック、メンテナンス、あるいはエージェント＋ツールに任せられる仕事なら何でも。

## これは何か

**Schedule** は特定の Bot に紐付きます。時刻が来ると自然言語の **command** を 1 つエージェントに渡し、エージェントがツールやスキルを使ってそれを実行します。結果は接続済みのチャネルに届けられます。

***

## フィールド

| フィールド | 説明 |
|------|------|
| **Name** | 表示名。例: `朝のダイジェスト` |
| **Description** | 短い説明 |
| **Pattern** | 5 フィールドの cron。例: `0 9 * * *` は毎日 9:00 |
| **Command** | 時刻が来たときにエージェントへ送られる自然言語のタスク |
| **Enabled** | 有効かどうか |
| **Max Calls** | 総実行回数の上限。空 = 無制限 |
| **Current Calls** | すでに実行された回数 |

***

## Cron（5 フィールド）

Bot のタイムゾーン——つまり Bot の **一般** タブの **Timezone** フィールド——で評価されます。未設定のときはサーバーのトップレベル `timezone` 設定（デフォルト **UTC**）にフォールバックします。5 つのフィールドは、分、時、日、月、曜日です。

```
┌ 分 0–59
│ ┌ 時 0–23
│ │ ┌ 日 1–31
│ │ │ ┌ 月 1–12
│ │ │ │ ┌ 曜日 0–6、日曜=0
* * * * *
```

| Pattern | 意味 |
|---------|------|
| `0 9 * * *` | 毎日 9:00 |
| `*/30 * * * *` | 30 分ごと |
| `0 0 * * 1` | 毎週月曜 0:00 |
| `0 8,20 * * *` | 毎日 8:00 と 20:00 |
| `0 0 1 * *` | 毎月 1 日 0:00 |

***

## 一覧を見る

Bot の **スケジュール** タブ: 名前、pattern、有効かどうか、実行回数など。**Refresh** で再読み込みします。

***

## 作成する

### Bot 自身に作らせる

Bot は `schedule` ツールを持っています。普通の言葉で頼めます。たとえば毎営業日の 8:00 にリポジトリの動きをまとめるよう伝えれば、Bot が cron を組み立てて登録します。

### API を呼ぶ

`POST /api/bots/{bot_id}/schedule`。例:

```json
{
  "name": "Daily Digest",
  "description": "Summarize repository activity every morning",
  "pattern": "0 8 * * *",
  "command": "Summarize yesterday's repository activity and send the result to Telegram.",
  "enabled": true,
  "max_calls": null
}
```

（フィールド名は現在の API に従ってください。）

***

## 実行時に起きること

1. cron の時刻が来る
2. `current_calls` が +1 される
3. `max_calls` が設定されていて上限に達した場合、タスクは自動的にオフになる
4. エージェントが `command` とスケジュールのコンテキストを受け取る
5. ツールを使ってメッセージ送信や Web 検索などを行う
6. 結果は接続済みのチャネルに届けられる
