Créer un fichier ICS
Un fichier ICS est le format universel du rendez-vous : titre, date, heure, lieu et description réunis dans un fichier que tous les agendas savent importer. Cet outil compose ce fichier .ics à partir de votre événement, prêt à joindre à une invitation par e-mail ou à proposer en téléchargement sur une page.
Lancer gratuitement
Tout se passe dans votre navigateur : gratuit, sans envoi de vos données.
Le format que tous les agendas comprennent
Google Agenda, Outlook, Apple Calendrier : chacun a ses habitudes, mais tous lisent le même format d’échange, l’ICS. Un fichier .ics décrit un événement de façon neutre — quand, où, quoi — et laisse chaque agenda l’intégrer à sa manière. En le joignant à une invitation, vous évitez à vos invités de recopier la date à la main ; ils cliquent, l’événement s’ajoute, avec le bon fuseau horaire et, si vous le souhaitez, un rappel.
Bien renseigner l’événement
Un événement clair tient en quelques champs : un titre explicite, une date et une heure de début et de fin, un lieu, une description. Précisez le fuseau horaire pour une invitation qui traverse les frontières, afin que quatorze heures à Paris ne devienne pas quatorze heures ailleurs. Vous pouvez ajouter un rappel avant l’heure et, pour un rendez-vous qui se répète, une récurrence — chaque semaine, chaque mois — décrite une fois pour toutes.
Gratuit, dans votre navigateur
Le fichier se construit dans votre navigateur : les détails de votre événement ne partent sur aucun serveur et ne sont pas conservés. C’est gratuit, illimité et sans inscription. Pour générer un .ics par inscription à un webinaire, ou l’attacher à des confirmations envoyées automatiquement, la même fonction existe par API et par d’autres canaux, à $0.002 la requête, en dollars US.
Cas d’usage
Invitation à une réunion
Thomas Rousseau joint un .ics à son e-mail pour que chacun ajoute la réunion au bon horaire, sans ressaisie.
Événement associatif
Une association propose sur son site un fichier ICS de son assemblée générale, à ajouter d’un clic.
Confirmation de rendez-vous
Atelier Garnier SARL attache un .ics à ses confirmations, pour que le client n’oublie pas la livraison.
Webinaire
Studio Lumen SAS envoie aux inscrits un fichier calendrier avec le lien et l’heure exacte de la session.
Questions fréquentes
Le fichier fonctionne-t-il avec Google, Outlook et Apple ?
Oui. L’ICS est le format d’échange commun à tous les grands agendas. Le même fichier .ics s’importe dans Google Agenda, Outlook et Apple Calendrier sans conversion.
Comment gérer le fuseau horaire ?
Précisez-le à la création : l’événement porte alors son fuseau, et chaque invité le voit à sa propre heure locale. C’est indispensable pour une invitation internationale.
Puis-je créer un événement récurrent ?
Oui. Décrivez la récurrence — hebdomadaire, mensuelle — une seule fois, et le fichier la porte. L’agenda de vos invités répète l’événement automatiquement.
Mes informations d’événement sont-elles envoyées ailleurs ?
Non. Le fichier est composé dans votre navigateur ; titre, lieu et participants ne transitent par aucun serveur et ne sont pas conservés.
Puis-je ajouter un rappel ?
Oui. Vous pouvez inscrire une alerte avant le début — dix minutes, une heure, un jour — que l’agenda de chaque invité déclenchera de son côté.
Est-ce payant ?
Non dans le navigateur : gratuit, illimité, sans inscription. Seule la génération automatisée par API, pour joindre un .ics à des envois en nombre, est facturée à $0.002 la requête, en dollars US.
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/dev/ical \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/dev/ical", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/ical",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/ical", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/ical", 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
{
"items": [
"valor-1",
"valor-2"
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.ical",
"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. |