# Feiertage im Blick: Wie ein KI-Agent postet, wenn er für viele verschiedene Zielgruppen arbeitet

_2026-10-13 · So plant ein KI-Agent rund um Feiertage: jedes Konto seinen Traditionen zuordnen, get_holidays aufrufen, calendar_notes lesen und den Vorabend sperren._

Ein Agent, der für viele Konten postet, sollte jeden geplanten Zeitpunkt mit den Feiertagen der jeweiligen Zielgruppe abgleichen, nicht mit einem einzigen nationalen Kalender. In Shager heißt das zwei Prüfungen: vor der Planung `get_holidays` für die relevanten Traditionen aufrufen und danach die `calendar_notes` lesen, die bei jedem geplanten Beitrag mitkommen. Was kein Tool dem Agenten abnehmen kann, ist die Entscheidung, welche Traditionen für welches Konto gelten. Das muss pro Kunde schriftlich festgehalten werden.

## Der Kalender ist einfach. Die Zuordnung ist das Schwierige.

Die meisten Feiertagspannen entstehen nicht durch fehlende Daten, sondern durch die Annahme, alle Zielgruppen teilten denselben Kalender.

Stell dir eine Agentur vor, die diese Konten aus einem Workspace betreut:

1. Ein Familienrestaurant in einem drusischen Dorf in Galiläa.
2. Eine Kette von Zahnarztpraxen, deren Patienten überwiegend arabische Staatsbürger Israels sind.
3. Ein Haushaltswarengeschäft mit ultraorthodoxer Kundschaft.
4. Ein Gemeindezentrum für Russischsprachige, in dem ein Teil der Zielgruppe dem orthodoxen Kirchenkalender folgt.
5. Eine E-Commerce-Marke, die nach Europa und Nordamerika liefert.

Ein fröhlicher Rabattbeitrag an einem Dienstag kann für vier davon passen und für den fünften denkbar schlecht getimt sein. Ein Agent weiß nur, was in seinen Anweisungen steht. Bevor dir also irgendeines der folgenden Werkzeuge hilft, braucht jedes Kundenprofil eine ausdrückliche Zeile: die Traditionen, die diese Zielgruppe begeht. Wenn du schon [einen Agenten für viele Kunden](/en/blog/one-agent-many-clients) einsetzt, gehört diese Zeile genau in dieses Profil.

## Was deckt der Feiertagskalender von Shager ab?

Der Kalender enthält jüdische und israelische, muslimische, westlich-christliche, orthodox-christliche, drusische, Bahá'í-, hinduistische, buddhistische, Sikh-, jainistische, chinesische und persische Feiertage. Dazu kommen internationale und kommerzielle Tage: Valentinstag, Internationaler Frauentag, Muttertag und Vatertag in den USA, Halloween, Singles' Day, Thanksgiving, Black Friday, Cyber Monday und Neujahr.

Jeder Tag trägt eine von vier Posting-Empfehlungen:

| Empfehlung | Was der Agent tun sollte | Beispiele |
| --- | --- | --- |
| `avoid` | Keine Werbeinhalte an diese Zielgruppe | Jom Kippur; Holocaust-Gedenktag und Gedenktag für die Gefallenen in Israel |
| `sensitive` | Nur respektvolle Inhalte, kein harter Verkauf, keine Witze | Fastentage, Karfreitag, Aschura, Tag von Arafat, Laylat al-Qadr |
| `opportunity` | Ein Gruß oder ein Themenbeitrag passt | Eid al-Fitr, Weihnachten, Diwali, Chinesisches Neujahr, Black Friday |
| `normal` | Nichts zu ändern | Alles andere |

Der Kalender in der App zeigt dieselben Daten für Menschen an, mit einem Filter nach Tradition und einer Farbe pro Empfehlung.

## get_holidays aufrufen

Die Funktion gibt es als MCP-Tool `get_holidays` und als REST-Operation, dokumentiert in der [OpenAPI-Spezifikation](https://app.shager.ai/api/v1/openapi.json):

```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"
```

Ohne `from` und `to` umfasst der Zeitraum heute plus 60 Tage, maximal sind es 400 Tage. `traditions` filtert auf die genannten Traditionen, und `language` liefert die Namen auf Englisch oder Hebräisch. Die Antwort sieht so aus:

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

Gib `guidance` an die Person weiter, die prüft: Das Feld erklärt in einem Satz, warum ein Beitrag verschoben wurde.

## Die Aufrufkette von Anfang bis Ende

Das ist die Reihenfolge, die ich für einen wöchentlichen Lauf verwende. Nehmen wir Ende November 2026 als Beispiel: Thanksgiving fällt auf Donnerstag, den 26., Black Friday auf den 27. und Cyber Monday auf den 30. Für die E-Commerce-Marke ist das eine Reihe von `opportunity`-Tagen. Für das ultraorthodoxe Geschäft oder das drusische Restaurant sind diese Tage womöglich einfach `normal` und keinen Themenbeitrag wert.

```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
```

Erstens: Mit `per_channel` bekommt ein Beitrag pro Konto einen anderen Text. Die US-Seite kann also das Thanksgiving-Wochenende erwähnen, während die EU-Seite über Black Friday spricht, ohne den amerikanischen Bezug. Mehr dazu habe ich in [Texte pro Konto variieren](/en/blog/caption-variation-per-account-with-ai) geschrieben.

Zweitens: Ein Beitrag hat genau einen geplanten Zeitpunkt. Sind sich zwei Zielgruppen in derselben Gruppe über einen Tag uneins, helfen unterschiedliche Texte nicht weiter. Teile sie in getrennte Beiträge mit getrennten Zeitpunkten auf.

`calendar_notes` kommt bei jedem Beitrag mit, den `create_post`, `get_post` und `schedule_post` zurückgeben, und listet die Feiertage am geplanten Tag samt Empfehlung auf. So fällt auf, was bei der Planung übersehen wurde, auch eine Uhrzeit, die jemand von Hand geändert hat.

## Warum „beginnt am Vorabend“ naive Datumsprüfungen aushebelt

Jüdische Feiertage beginnen bei Sonnenuntergang am Abend vor dem Datum, das im Kalender steht. Die [Erklärung der Reformbewegung](https://reformjudaism.org/learning/answers-jewish-questions/why-do-jewish-holidays-begin-night) führt das auf die Schöpfungsgeschichte zurück, in der der Abend vor dem Morgen kommt. Auch der islamische Tag beginnt mit dem Sonnenuntergang.

Ein Agent, der nur Daten vergleicht, liegt hier auf vorhersehbare Weise falsch. Der Kalender führt Jom Kippur an einem Datum. Der Agent prüft eine Aktion, die für 19:00 Uhr am Vortag geplant ist, findet keinen Treffer und veröffentlicht mitten in den Beginn des Fastens hinein.

In Israel steht an den beiden Gedenktagen noch mehr auf dem Spiel. Der Gedenktag für die gefallenen Soldaten beginnt bei Sonnenuntergang am Vorabend, und tagsüber sind [Unterhaltungsstätten gesetzlich geschlossen](https://www.jewishvirtuallibrary.org/yom-hazikaron-israeli-memorial-day). Am Holocaust-Gedenktag sind [öffentliche Unterhaltungsstätten gesetzlich geschlossen](https://en.wikipedia.org/wiki/Yom_HaShoah), am Vorabend und am Tag selbst. Eine Marke, die an diesem Abend einen verspielten Sale postet, verstößt gegen kein Gesetz, aber die Zielgruppe merkt es.

Meine Regel in den Anweisungen für Agenten ist einfach: Bei `avoid`- und `sensitive`-Tagen zählen Nachmittag und Abend des Vortags zum Tag dazu. Bei `opportunity`-Tagen hilft dir der Beginn am Vorabend sogar, denn ein Gruß, der vor Beginn des Feiertags erscheint, kommt pünktlich an.

## Warum sind islamische Daten als ungefähr markiert?

Shager berechnet islamische Daten nach dem Umm-al-Qura-Kalender und markiert sie mit `approximate: true`. Umm al-Qura ist der offizielle Kalender Saudi-Arabiens und wird im Voraus berechnet, während der Beginn der religiösen Monate von der Sichtung der Mondsichel abhängt. [The New Arab zitiert die frühere Website des Kalenders selbst](https://www.newarab.com/news/will-saudi-arabia-announce-wrong-date-ramadan) mit dem Hinweis, dass er nicht unbedingt mit der tatsächlichen Sichtbarkeit der Mondsichel übereinstimmt. Außerdem wenden Länder unterschiedliche Kriterien für die Sichtung an, sodass [Eid in verschiedenen Ländern auf verschiedene Tage fallen kann](https://www.aljazeera.com/news/2023/3/16/infographic-when-is-ramadan-2023).

Die Abweichung beträgt etwa einen Tag. Für die Zahnarztkette heißt das: Den Gruß zu Eid al-Fitr früh als Entwurf vorbereiten und erst nach der lokalen Bekanntgabe planen, oder ihn so formulieren, dass er auch einen Tag zu früh noch gut klingt. Bei einem ungefähren `sensitive`-Tag lässt du auf beiden Seiten einen Puffertag. Und bei Zielgruppen, die über mehrere Länder verteilt sind, gehst du nicht davon aus, dass ein Datum für alle passt.

## Ein Prompt zum Anpassen

```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.
```

Kombiniere das mit den Timing-Regeln aus [Planungsstrategie für Agenten](/en/blog/scheduling-strategy-for-agents), damit Zeitzonen-Offsets und Feiertage im selben Durchgang erledigt werden.

## Checkliste vor jedem geplanten Lauf

1. Jedes Konto hat ein Zielgruppenprofil mit einer ausdrücklichen Liste von Traditionen.
2. Ein einziger `get_holidays`-Aufruf deckt den gesamten Zeitraum des Laufs ab.
3. Ein `avoid`-Tag sperrt auch den Abend davor.
4. Ein `sensitive`-Tag ändert den Ton, nicht nur die Uhrzeit.
5. `opportunity`-Beiträge werden pro Zielgruppe geschrieben, nie als ein generischer Gruß für alle.
6. Ungefähre Daten bekommen einen Puffertag.
7. Gemischte Zielgruppen an einem umstrittenen Tag werden auf getrennte Beiträge verteilt.
8. Nach der Planung liest der Agent `calendar_notes` und meldet jede Änderung, die er vorgenommen hat.

Wöchentliche Ruhetage wie der Schabbat sind eine feste Regel und kein Kalendereintrag. Trag sie deshalb als gesperrte Zeitfenster ins Zielgruppenprofil ein.

Ist dein Agent noch nicht verbunden, führt dich die [Einstiegsseite für Agenten](/en/agents) durch die Einrichtung. Danach ist der erste sinnvolle Job klein: Ergänze jedes Kundenprofil um die Zeile mit den Traditionen und lass `get_holidays` über die nächsten zwei Monate laufen, um zu sehen, was ansteht.

## FAQ

### Blockiert Shager die Planung an einem avoid-Tag?

Nein. Die Empfehlung ist eine Information, die `get_holidays` und die `calendar_notes` jedes Beitrags liefern. Die Entscheidung bleibt beim Agenten und bei der Person, die seine Arbeit freigibt, denn derselbe Tag kann für eine Zielgruppe feierlich und für eine andere ganz gewöhnlich sein.

### Woher weiß der Agent, welche Traditionen für ein Konto gelten?

Raten sollte er das nicht, weder anhand eines Firmennamens noch anhand einer Stadt. Schreib die Traditionen in das Zielgruppenprofil jedes Kunden und weise den Agenten an, anzuhalten und nachzufragen, wenn diese Zeile fehlt.

### Muss sich eine globale E-Commerce-Marke überhaupt um religiöse Feiertage kümmern?

Ja, vor allem in ihren größeren Märkten. Gruppiere ihre Konten nach Markt, gleiche jede Gruppe mit den kommerziellen Tagen und den in diesem Markt verbreiteten Traditionen ab und schreib die Grüße pro Gruppe. Ein Weihnachtsbeitrag ist in einem Markt eine Chance und in einem anderen belanglos oder unpassend.

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