Como um agente de IA deve lidar com feriados quando publica para públicos muito diferentes?

Como um agente de IA deve agendar em torno de feriados: ligar cada conta às suas tradições, chamar get_holidays, ler calendar_notes e bloquear a véspera.

Um agente que publica para muitas contas deve conferir cada horário agendado com os feriados do público de cada conta, e não com um único calendário nacional. No Shager, isso significa duas verificações: chamar get_holidays para as tradições que importam antes de planejar e, depois, ler as calendar_notes que voltam em cada post agendado. A parte que nenhuma ferramenta faz pelo agente é decidir quais tradições valem para qual conta, e por isso isso precisa estar escrito, cliente por cliente.

O calendário é a parte fácil. O difícil é o mapeamento.

A maioria dos erros com feriados vem de presumir que todo público segue o mesmo calendário, e não da falta de dados.

Imagine uma agência que cuida destas contas a partir de um mesmo espaço de trabalho:

  1. Um restaurante familiar em uma aldeia drusa na Galileia.
  2. Uma rede de clínicas odontológicas cujos pacientes são, em sua maioria, cidadãos árabes de Israel.
  3. Uma loja de utilidades domésticas que vende para um público judeu ultraortodoxo (haredi).
  4. Um centro comunitário para falantes de russo, em que parte do público segue o calendário da Igreja Ortodoxa.
  5. Uma marca de e-commerce que entrega na Europa e na América do Norte.

Um post animado de desconto numa terça-feira pode cair bem para quatro deles e muito mal para o quinto. O agente só sabe o que está nas instruções dele. Então, antes que qualquer ferramenta abaixo ajude, o perfil de cada cliente precisa de uma linha explícita: as tradições que esse público segue. Se você já usa um agente para muitos clientes, é nesse perfil que essa linha deve ficar.

Diagrama de calendário: cada feriado de uma tradição traz uma recomendação: evitar conteúdo promocional, tratar com sensibilidade ou aproveitar para uma saudação.
Antes de agendar, o agente verifica os feriados do público de cada conta. (Exemplos)

O que o calendário de feriados do Shager cobre?

O calendário inclui feriados judaicos e israelenses, muçulmanos, cristãos ocidentais, cristãos ortodoxos, drusos, bahá'ís, hindus, budistas, sikhs, jainistas, chineses e persas. Também inclui datas internacionais e comerciais: Valentine's Day, Dia Internacional da Mulher, Dia das Mães e Dia dos Pais dos Estados Unidos, Halloween, Singles' Day, Thanksgiving, Black Friday, Cyber Monday e Ano-Novo.

Cada dia traz uma de quatro recomendações de publicação:

Recomendação O que o agente deve fazer Exemplos
avoid Nenhum conteúdo promocional para esse público Yom Kipur; Dia da Memória do Holocausto e Dia da Memória (Yom HaZikaron) em Israel
sensitive Só conteúdo respeitoso, sem venda agressiva, sem piadas Dias de jejum, Sexta-feira Santa, Ashura, Dia de Arafat, Laylat al-Qadr
opportunity Cabe uma saudação ou um post temático Eid al-Fitr, Natal, Diwali, Ano-Novo Lunar, Black Friday
normal Nada a mudar Todo o resto

O calendário do app mostra os mesmos dados para as pessoas, com filtro por tradição e uma cor para cada recomendação.

Chamando o get_holidays

Ele está disponível como a ferramenta MCP get_holidays e como uma operação REST documentada na especificação OpenAPI:

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"

Sem from e to, o período é de hoje até 60 dias à frente. O máximo é de 400 dias. traditions filtra pelas tradições que você indicar, e language devolve os nomes em inglês ou em hebraico. A resposta tem este formato:

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

Repasse o guidance para o revisor humano; ele explica em uma frase por que um post mudou de horário.

A sequência de chamadas, de ponta a ponta

Esta é a ordem que eu uso numa rodada semanal. Tome como exemplo o fim de novembro de 2026: o Thanksgiving cai na quinta-feira, dia 26, a Black Friday no dia 27 e a Cyber Monday no dia 30. Para a marca de e-commerce, isso é uma sequência de dias opportunity. Para a loja haredi ou para o restaurante druso, esses dias podem ser apenas normal, e nem valer um post temático.

get_holidays  { from: "2026-11-20", to: "2026-12-05", traditions: <união de todos os perfis desta rodada> }

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

ler as calendar_notes do post retornado
  se alguma entrada for avoid ou sensitive para uma tradição do perfil desta conta:
    cancel_post, escolher outro horário, agendar de novo e registrar o motivo

Primeiro, o per_channel permite que um mesmo post leve uma legenda diferente para cada conta; assim, a página dos Estados Unidos pode falar do fim de semana de Thanksgiving, enquanto a página da Europa fala de Black Friday sem o enquadramento americano. Escrevi mais sobre isso em variação de legendas por conta.

Segundo, um post tem um único horário de agendamento. Quando dois públicos do mesmo grupo divergem sobre um dia, a legenda não resolve. Separe-os em posts diferentes, com horários diferentes.

As calendar_notes voltam em todo post retornado por create_post, get_post e schedule_post, listando os feriados do dia agendado daquele post com as respectivas recomendações. Elas pegam o que escapou no planejamento, inclusive um horário que alguém mudou à mão.

Diagrama de linha do tempo: os posts em contas diferentes se distribuem ao longo de minutos, em uma faixa separada por rede, em vez de saírem todos no mesmo segundo.
O escalonamento respeita o ritmo de cada rede e evita parecer spam. Padrão: de 30 a 90 segundos entre contas da mesma rede.

Por que "começa na véspera" quebra verificações ingênuas de data

Os feriados judaicos começam ao pôr do sol da véspera da data que aparece no calendário. A explicação do movimento reformista remonta isso à narrativa da criação, em que a tarde vem antes da manhã. O dia islâmico também começa ao pôr do sol.

Um agente que compara só datas vai errar de um jeito previsível. O calendário mostra o Yom Kipur em uma data. O agente confere uma promoção agendada para as 19h da data anterior, não vê conflito e publica bem no começo do jejum.

Em Israel, os dois dias de memória pesam ainda mais. O Dia da Memória dos soldados mortos começa ao pôr do sol da noite anterior, e os locais de entretenimento ficam fechados por lei durante o dia. No Dia da Memória do Holocausto, os locais de entretenimento público ficam fechados por lei na véspera e no próprio dia. Uma marca que publica uma promoção descontraída nessa noite não infringe lei nenhuma, mas o público percebe.

A minha regra nas instruções do agente é simples: nos dias avoid e sensitive, a tarde e a noite da véspera contam como parte do dia. Nos dias opportunity, o início à noite joga a seu favor, porque uma saudação publicada antes de o feriado começar chega na hora certa.

Por que as datas islâmicas aparecem como aproximadas?

O Shager calcula as datas islâmicas a partir do calendário Umm al-Qura e as marca com approximate: true. O Umm al-Qura é o calendário oficial da Arábia Saudita e é calculado com antecedência, enquanto o início dos meses religiosos depende da observação da lua crescente. O The New Arab cita o antigo site do próprio calendário dizendo que ele pode não coincidir com a visibilidade real da lua. Os países também aplicam critérios diferentes de observação, então o Eid pode cair em dias diferentes em cada país.

A diferença é de cerca de um dia. Para a rede de clínicas, isso significa preparar a saudação de Eid al-Fitr como rascunho com antecedência e agendá-la depois do anúncio local, ou escrevê-la de um jeito que ainda funcione se sair um dia antes. Num dia sensitive aproximado, deixe um dia de margem de cada lado. Para públicos espalhados por vários países, não presuma que uma única data serve para todos.

Um prompt para adaptar

Antes de agendar qualquer coisa nesta semana:
1. Leia o perfil de público de cada cliente e liste as tradições. Se um perfil não tiver nenhuma, pare e me pergunte.
2. Chame get_holidays uma única vez para a semana toda, com a união dessas tradições.
3. avoid: nenhum post promocional para esse público, inclusive na tarde e na noite da véspera.
4. sensitive: só tom respeitoso. Sem descontos, sem humor, sem contagem regressiva.
5. opportunity: proponha uma saudação ou um post temático, escrito separadamente para cada conta com per_channel.
6. approximate=true: mantenha um dia de margem ou espere o anúncio local.
7. Depois do schedule_post, leia as calendar_notes. Se houver conflito, cancele, reagende e me diga o que mudou.

Combine com as regras de horário de estratégia de agendamento para agentes, para que offsets e feriados sejam tratados na mesma passada.

Checklist antes de cada rodada agendada

  1. Toda conta tem um perfil de público com uma lista explícita de tradições.
  2. Uma única chamada get_holidays cobre todo o período da rodada.
  3. Um dia avoid também bloqueia a noite anterior.
  4. Um dia sensitive muda o tom, e não só o horário.
  5. Os posts opportunity são escritos para cada público, nunca uma saudação genérica para todos.
  6. Datas aproximadas ganham um dia de margem.
  7. Públicos mistos num dia controverso são separados em posts diferentes.
  8. Depois do agendamento, o agente lê as calendar_notes e informa cada mudança que fez.

Dias de descanso semanal, como o Shabat, são uma regra fixa, e não uma entrada do calendário; por isso, coloque-os no perfil de público como faixas de horário bloqueadas.

Se o seu agente ainda não está conectado, a página de entrada para agentes mostra a configuração passo a passo. Depois que estiver, o primeiro trabalho útil é pequeno: adicione a linha de tradições ao perfil de cada cliente e rode get_holidays para os próximos dois meses, para ver o que vem pela frente.

Perguntas frequentes

O Shager bloqueia o agendamento num dia avoid?

Não. A recomendação é uma informação, devolvida pelo get_holidays e pelas calendar_notes de cada post. A decisão fica com o agente e com quem aprova o trabalho dele, porque o mesmo dia pode ser solene para um público e comum para outro.

Como o agente sabe quais tradições valem para uma conta?

Ele não deve adivinhar pelo nome da empresa ou pela cidade. Escreva as tradições no perfil de público de cada cliente e instrua o agente a parar e perguntar quando essa linha estiver faltando.

Uma marca global de e-commerce precisa se preocupar com feriados religiosos?

Precisa, principalmente nos mercados maiores. Agrupe as contas por mercado, confira cada grupo com as datas comerciais e com as tradições mais comuns naquele mercado, e escreva as saudações por grupo. Um post de Natal é uma oportunidade em um mercado e irrelevante, ou até constrangedor, em outro.

Experimente nas suas próprias contas.

Grátis durante o lançamento, sem cartão. Conecte, escreva uma vez, e o Shager publica e mede.