# さまざまなオーディエンスに投稿する AI エージェントは、祝祭日をどう扱うべきか

_2026-10-13 · アカウントごとに伝統を対応付け、get_holidays と calendar_notes を確認し、前日の夕方も避ける。祝祭日を考慮した予約の方法です。_

多くのアカウントに投稿するエージェントは、予約するすべての時刻を、1つの国の暦ではなく、各アカウントのオーディエンスの祝祭日に照らして確認すべきです。Shager では、確認は2段階です。計画の前に、関係する伝統について `get_holidays` を呼ぶこと。そして、予約したすべての投稿に返ってくる `calendar_notes` を読むことです。どのツールもエージェントの代わりにできないのは、どのアカウントにどの伝統が当てはまるかを決めることです。だからこそ、それはクライアントごとに書き出しておく必要があります。

## 暦そのものは簡単。難しいのは対応付けです。

祝祭日がらみのミスの多くは、データが欠けていることではなく、すべてのオーディエンスが同じ暦で暮らしていると思い込むことから生まれます。

ある代理店が、1つのワークスペースで次のアカウントを運用しているとしましょう。

1. ガリラヤ地方のドゥルーズ派の村にある、家族経営のレストラン。
2. 患者の大半がイスラエルのアラブ系市民である、歯科クリニックのチェーン。
3. 超正統派（ハレディ）のユダヤ教徒向けに販売する、日用品店。
4. ロシア語話者のためのコミュニティセンター。オーディエンスの一部は正教会の暦に従っています。
5. ヨーロッパと北米に発送する EC ブランド。

火曜日の明るい割引投稿は、このうち4つには問題なくても、残る1つにとってはひどいタイミングになり得ます。エージェントが知っているのは、指示に書かれたことだけです。ですから、これから紹介するツールが役に立つ前に、各クライアントのプロファイルに、はっきりした1行が必要です。このオーディエンスが守っている伝統は何か、です。すでに[1つのエージェントで多数のクライアントを担当](/ja/blog/one-agent-many-clients)しているなら、そのプロファイルに書くのが適切です。

## Shager の祝祭日カレンダーは何をカバーしていますか？

カレンダーには、ユダヤ教とイスラエル、イスラム教、西方キリスト教、正教会、ドゥルーズ派、バハイ教、ヒンドゥー教、仏教、シク教、ジャイナ教、中国、ペルシャの祝祭日が含まれます。国際的な記念日や商戦の日も入っています。バレンタインデー、国際女性デー、米国の母の日と父の日、ハロウィン、独身の日、感謝祭、ブラックフライデー、サイバーマンデー、そして新年です。

どの日にも、投稿に関する4種類のアドバイスのいずれかが付いています。

| アドバイス | エージェントがすべきこと | 例 |
| --- | --- | --- |
| `avoid` | そのオーディエンスには販促コンテンツを出さない | ヨム・キプル、イスラエルのホロコースト記念日と戦没者記念日 |
| `sensitive` | 敬意ある内容だけにし、強い売り込みや冗談は避ける | 断食日、聖金曜日、アーシューラー、アラファの日、ライラト・アル＝カドル |
| `opportunity` | あいさつやテーマに沿った投稿が合う | イード・アル＝フィトル、クリスマス、ディワリ、旧正月、ブラックフライデー |
| `normal` | 何も変えなくてよい | それ以外のすべての日 |

アプリのカレンダーでも、同じデータが人向けに表示されます。伝統で絞り込めて、アドバイスごとに色分けされています。

## get_holidays を呼ぶ

この機能は、MCP ツールの `get_holidays` と、[OpenAPI 仕様](https://app.shager.ai/api/v1/openapi.json)に記載された REST の操作として提供されています。

```bash
curl -s "https://app.shager.ai/api/v1/holidays?from=2026-11-20&to=2026-12-05&traditions=jewish,muslim&language=en" \
  -H "Authorization: Bearer $SHAGER_API_KEY"
```

`from` と `to` を省くと、範囲は今日から60日間になります。最大は400日です。`traditions` は指定した伝統だけに絞り込み、`language` は名称を英語かヘブライ語で返します。レスポンスは次の形です。

```json
{
  "data": {
    "from": "2026-11-20",
    "to": "2026-12-05",
    "note": "...",
    "holidays": [
      {
        "date": "YYYY-MM-DD",
        "tradition": "...",
        "name": "...",
        "key": "...",
        "advice": "opportunity",
        "guidance": "...",
        "approximate": true
      }
    ]
  }
}
```

`guidance` は人のレビュー担当者に渡してください。投稿をなぜ動かしたのかが、ひとことで説明されています。

## 呼び出しの流れ：最初から最後まで

週次の実行で私が使っている順番を紹介します。例として2026年11月下旬を取り上げましょう。感謝祭が26日（木）、ブラックフライデーが27日、サイバーマンデーが30日です。EC ブランドにとっては `opportunity` の日が続きます。超正統派向けの店やドゥルーズ派のレストランにとっては、これらの日は単に `normal` で、テーマ投稿をする価値すらないかもしれません。

```text
get_holidays  { from: "2026-11-20", to: "2026-12-05", traditions: <union of all profiles in this run> }

create_post   { workspace_id: "ws_retail",
                channel_ids: ["ch_shop_eu_ig", "ch_shop_us_fb"],
                caption: "...",
                per_channel: [
                  { channel_id: "ch_shop_eu_ig", caption: "..." },
                  { channel_id: "ch_shop_us_fb", caption: "..." }
                ],
                media_ids: ["med_19ae"] }

schedule_post { workspace_id: "ws_retail", post_id: "pst_5d2c",
                schedule_at: "2026-11-27T09:00:00-05:00" }

read calendar_notes on the returned post
  if any entry is avoid or sensitive for a tradition in this account's profile:
    cancel_post, pick a new time, schedule again, and log why
```

まず、`per_channel` を使えば、1つの投稿でアカウントごとに別のキャプションを付けられます。米国のページでは感謝祭の週末に触れ、EU のページではアメリカ的な文脈抜きでブラックフライデーを語る、といったことができます。詳しくは[アカウントごとのキャプションの書き分け](/ja/blog/caption-variation-per-account-with-ai)に書きました。

次に、1つの投稿が持てる予約時刻は1つだけです。同じグループ内の2つのオーディエンスで、ある日の意味が食い違うなら、キャプションでは解決できません。別々の投稿に分け、別々の時刻にしてください。

`calendar_notes` は、`create_post`、`get_post`、`schedule_post` が返すすべての投稿に付いてきて、その投稿の予約日にある祝祭日とアドバイスを一覧にします。誰かが手で時刻を変えた場合も含め、計画の段階で見落としたものを拾ってくれます。

## 「前日の夕方から始まる」が、単純な日付チェックを狂わせる理由

ユダヤ教の祝祭日は、カレンダーに載っている日付の前日の日没から始まります。[改革派ユダヤ教の解説](https://reformjudaism.org/learning/answers-jewish-questions/why-do-jewish-holidays-begin-night)は、その由来を、夕べが朝より先に来る天地創造の物語にさかのぼって説明しています。イスラム教の1日も日没から始まります。

日付だけを比べるエージェントは、予想どおりの形でこれを間違えます。カレンダーにはヨム・キプルが特定の日付で載っています。エージェントはその前日の19時に予約した販促投稿をチェックし、一致しないと判断して、断食の始まりに投稿してしまいます。

イスラエルでは、2つの記念日でさらに慎重さが求められます。戦没者記念日は前夜の日没から始まり、日中は[娯楽施設が法律で閉鎖されます](https://www.jewishvirtuallibrary.org/yom-hazikaron-israeli-memorial-day)。ホロコースト記念日には、前夜と当日、[公共の娯楽施設が法律で閉鎖されます](https://en.wikipedia.org/wiki/Yom_HaShoah)。その晩にブランドがおどけたセール投稿をしても法律違反にはなりませんが、オーディエンスは気づきます。

私がエージェントの指示に書くルールは単純です。`avoid` と `sensitive` の日は、前日の午後と夕方もその日の一部とみなします。`opportunity` の日は、夕方から始まることがむしろ味方になります。祝祭日が始まる前に届くあいさつは、ちょうどよいタイミングで届くからです。

## イスラム暦の日付が「おおよそ」とされているのはなぜですか？

Shager はイスラム暦の日付をウンム・アル＝クラー暦から計算し、`approximate: true` を付けています。ウンム・アル＝クラー暦はサウジアラビアの公式暦で、あらかじめ計算されていますが、宗教上の月の始まりは新月（三日月）の目視に左右されます。[The New Arab は、この暦のかつての公式サイトの記述を引用し](https://www.newarab.com/news/will-saudi-arabia-announce-wrong-date-ramadan)、実際の月の見え方と一致しない場合があると伝えています。国によって目視の基準も違うため、[イードの日付が国ごとに異なる](https://www.aljazeera.com/news/2023/3/16/infographic-when-is-ramadan-2023)こともあります。

ずれはおよそ1日です。クリニックチェーンの場合、イード・アル＝フィトルのあいさつは早めに下書きとして用意し、現地での発表後に予約するか、1日早く出ても自然に読めるように書いておく、ということになります。おおよその日付とされる `sensitive` の日は、前後に1日ずつ余裕を取りましょう。複数の国にまたがるオーディエンスには、1つの日付が全員に当てはまると考えないでください。

## そのまま使えるプロンプト

```text
Before scheduling anything this week:
1. Read each client's audience profile and list its traditions. If a profile has none, stop and ask me.
2. Call get_holidays once for the whole week, with the union of those traditions.
3. avoid: no promotional posts to that audience, including the afternoon and evening before.
4. sensitive: respectful tone only. No discounts, no humour, no countdowns.
5. opportunity: propose a greeting or themed post, written separately per account with per_channel.
6. approximate=true: keep a one day buffer, or wait for the local announcement.
7. After schedule_post, read calendar_notes. On a conflict, cancel, reschedule and tell me what changed.
```

[エージェントのための予約戦略](/ja/blog/scheduling-strategy-for-agents)のタイミングのルールと組み合わせれば、オフセットと祝祭日を一度にまとめて処理できます。

## 予約を実行する前のチェックリスト

1. すべてのアカウントに、伝統を明記したオーディエンスのプロファイルがある。
2. 1回の `get_holidays` の呼び出しで、実行する期間全体をカバーしている。
3. `avoid` の日は、その前日の夕方もブロックしている。
4. `sensitive` の日は、時刻だけでなくトーンも変えている。
5. `opportunity` の投稿はオーディエンスごとに書いており、全員向けの汎用的なあいさつ1つで済ませていない。
6. おおよその日付には、1日の余裕を取っている。
7. ある日の意味が分かれる混在したオーディエンスは、別々の投稿に分けている。
8. 予約後、エージェントが `calendar_notes` を読み、行った変更をすべて報告している。

安息日（シャバット）のような週ごとの休息日は、カレンダーの項目ではなく固定のルールです。オーディエンスのプロファイルに、ブロックする時間帯として書いておきましょう。

エージェントがまだつながっていなければ、[エージェント向けページ](/ja/agents)で設定の手順を案内しています。つながったら、最初にやると役立つのは小さな仕事です。すべてのクライアントのプロファイルに伝統の1行を加え、今後2か月分の `get_holidays` を実行して、何が控えているかを確認してみてください。

## よくある質問

### Shager は、avoid の日の予約をブロックしますか？

いいえ。アドバイスは情報であり、`get_holidays` と各投稿の `calendar_notes` で返されます。判断はエージェントと、その仕事を承認する人に委ねられます。同じ日が、あるオーディエンスにとっては厳粛な日で、別のオーディエンスにとってはふだんどおりの日であり得るからです。

### エージェントは、どの伝統がアカウントに当てはまるかをどうやって知るのですか？

事業名や都市名から推測させるべきではありません。各クライアントのオーディエンスのプロファイルに伝統を書き込み、その1行がない場合は作業を止めて確認するよう、エージェントに指示してください。

### グローバルな EC ブランドも、宗教上の祝祭日を気にする必要がありますか？

はい。主に規模の大きい市場についてです。アカウントを市場ごとにグループ分けし、各グループを商戦の日とその市場で一般的な伝統に照らして確認し、あいさつはグループごとに書きます。クリスマスの投稿は、ある市場では好機でも、別の市場では的外れだったり、気まずかったりします。

---
Source: https://shager.ai/ja/blog/holiday-aware-posting-for-agents
