Attribuez des dates à votre calendrier éditorial
Transformez une liste ordonnée de contenus en planning daté sans compter les jours à la main ni déplacer des lignes dans un tableur.
Lancer gratuitement
Indiquez vos contenus, la première date disponible et le nombre de publications souhaité par semaine. L’outil conserve l’ordre initial, répartit régulièrement les créneaux sur des blocs successifs de sept jours et renvoie un calendrier clair précisant le contenu, la date, la semaine et le numéro de créneau. Le calcul est déterministe : des données identiques produisent toujours le même calendrier, que vous pouvez réutiliser en toute sécurité dans vos automatisations.
Préparez une file de contenus dans le bon ordre
Commencez par placer les contenus dans l’ordre exact où ils doivent paraître. Chaque élément peut être un titre de travail, un libellé de campagne, un identifiant de ressource ou une brève description, à condition qu’il s’agisse d’un texte non vide. Le planificateur ne classe, ne réécrit et ne hiérarchise pas les éléments : il respecte l’ordre fourni afin que vos décisions éditoriales restent entièrement sous votre contrôle. Choisissez comme date de début le premier créneau réellement disponible, et non simplement le jour où vous commencez à planifier. Le premier contenu sera affecté à cette date. Saisissez ensuite une fréquence hebdomadaire entière et positive, par exemple une, trois ou sept publications. Avec ces trois paramètres explicites, le résultat est facile à contrôler : chaque ligne planifiée peut être reliée à sa position d’origine, à son bloc de sept jours et à son numéro de créneau dans la semaine. Si votre campagne comporte des dépendances, réglez-les dans la file avant de générer les dates, car le calendrier considère l’ordre comme la référence et ne formule aucune hypothèse cachée sur les priorités.
Comprenez la répartition des dates de publication
Chaque semaine de planification correspond à un bloc continu de sept jours ancré sur la date de début fournie. Elle ne commence donc pas automatiquement un lundi et ne dépend d’aucune convention hebdomadaire locale. À l’intérieur de ce bloc, une règle proportionnelle stable calcule les dates à partir de la position de chaque contenu. Pour trois publications par semaine, par exemple, les décalages sont de zéro, deux et quatre jours, puis le contenu suivant ouvre le nouveau bloc au septième jour. Cette méthode respecte le volume hebdomadaire demandé tout en répartissant les créneaux au lieu de les regrouper le premier jour. Si la fréquence dépasse sept, plusieurs créneaux peuvent tomber à la même date, ce qui représente volontairement plusieurs publications quotidiennes. Le calcul respecte les années bissextiles et la durée des mois du calendrier grégorien, sans fuseau horaire ni heure précise. Un changement d’heure saisonnier ne peut donc pas déplacer une date, et deux exécutions identiques donnent le même résultat pour vos tests, importations et dossiers de validation.
Intégrez le planning à votre processus éditorial
La réponse contient la date de début normalisée, la fréquence, le nombre total de contenus, la dernière date planifiée et un enregistrement pour chaque élément fourni. Chaque enregistrement indique sa position à partir de un, son texte d’origine, sa date, son numéro de semaine et son numéro de créneau dans cette semaine. Vous pouvez ainsi importer les lignes dans un système de gestion de contenu, les rapprocher d’une table de ressources détaillée grâce à la position ou au texte, ou montrer aux personnes chargées de la validation comment la file tient dans le rythme disponible. Considérez le résultat comme un plan de créneaux, et non comme une publication automatique : l’outil ne diffuse rien, ne contacte aucun réseau social, ne vérifie pas les jours fériés, n’exclut pas les week-ends et ne choisit pas les meilleures heures selon le canal. Si votre équipe suspend une campagne, modifie le rythme ou insère un contenu prioritaire, corrigez la liste ordonnée puis régénérez le calendrier. Avec un tarif de $0.002 par requête et un calcul déterministe, vos automatisations peuvent reconstruire des plannings complets de façon prévisible dès que la file source change.
Cas d’usage
Planifiez une campagne en attente
Associez une séquence validée de publications de lancement à des dates, sans modifier le récit de campagne ni le rythme hebdomadaire choisi.
Organisez une file éditoriale
Convertissez des titres d’articles ou des identifiants de ressources en calendrier daté que votre équipe peut contrôler et importer ailleurs.
Recalculez après un changement de rythme
Régénérez tous les créneaux de manière cohérente lorsque votre équipe augmente ou réduit le nombre prévu de publications hebdomadaires.
Questions fréquentes
Que représente une semaine dans ce calendrier ?
Il s’agit d’un bloc de sept jours commençant à la date indiquée, quel que soit le jour de la semaine correspondant.
Le premier contenu paraît-il à la date de début ?
Oui. La date de début constitue le premier créneau disponible et elle est donc attribuée au premier contenu.
Plusieurs contenus peuvent-ils recevoir la même date ?
Oui. Une fréquence supérieure à sept publications hebdomadaires crée nécessairement plusieurs créneaux certains jours, mais chaque contenu conserve un numéro de créneau distinct.
Les week-ends et les jours fériés sont-ils exclus ?
Non. Les créneaux sont répartis sur des jours calendaires consécutifs. Si vous avez besoin de règles ouvrées, retirez les dates indisponibles en aval ou adaptez le planning obtenu.
Que se passe-t-il si la fréquence est nulle ou négative ?
La requête échoue avec une erreur de saisie, car le nombre de publications par semaine doit être un entier positif.
Quel est le prix d’une requête ?
Chaque requête coûte $0.002. Le même calcul déterministe peut également être exécuté dans l’outil du navigateur.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/biz/content-calendar-slot-fill \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"content_pieces":["Product launch announcement","Customer success story","Behind-the-scenes video","Monthly tips roundup"],"posts_per_week":3,"start_date":"2026-08-03"}'const res = await fetch("https://api.kit.forhosting.com/biz/content-calendar-slot-fill", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"content_pieces": [
"Product launch announcement",
"Customer success story",
"Behind-the-scenes video",
"Monthly tips roundup"
],
"posts_per_week": 3,
"start_date": "2026-08-03"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/biz/content-calendar-slot-fill",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"content_pieces": [
"Product launch announcement",
"Customer success story",
"Behind-the-scenes video",
"Monthly tips roundup"
],
"posts_per_week": 3,
"start_date": "2026-08-03"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/biz/content-calendar-slot-fill", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"content_pieces":["Product launch announcement","Customer success story","Behind-the-scenes video","Monthly tips roundup"],"posts_per_week":3,"start_date":"2026-08-03"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"content_pieces":["Product launch announcement","Customer success story","Behind-the-scenes video","Monthly tips roundup"],"posts_per_week":3,"start_date":"2026-08-03"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/biz/content-calendar-slot-fill", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"content_pieces": [
"Product launch announcement",
"Customer success story",
"Behind-the-scenes video",
"Monthly tips roundup"
],
"posts_per_week": 3,
"start_date": "2026-08-03"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "biz.content_calendar_slot_fill",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |