MeetingHub MeetingHub Télécharger la collection Postman

Déposer l'emploi du temps

Envoyer le planning de votre ENT, une fois puis chaque nuit.

Votre ENT possède le planning. Le ressaisir dans MeetingHub serait le condamner à diverger dès la première semaine : déposez-le. Ce guide montre comment ; la référence donne chaque champ et chaque règle : Emploi du temps.

Il faut une clé de portée schedule:write. Dans les adresses ci-dessous, :institutionId est l'identifiant de votre établissement, rendu par GET /api/me.

Le dépôt

PUT /api/institutions/:institutionId/lessons
{ "sessions": [
    { "ref": "ENT-12345",
      "room":  { "ref": "salle-204", "name": "Salle 204" },
      "group": { "ref": "bts-sio-1", "name": "BTS SIO 1" },
      "title": "Mathématiques",
      "startsAt": "2026-10-14T08:00:00Z",
      "durationMinutes": 120 } ] 
}

ref est l'identifiant du cours CHEZ VOUS. C'est lui qui rend le dépôt rejouable : envoyez le même corps chaque nuit, rien ne change ; changez l'heure, le cours se déplace. Un cours n'est jamais créé deux fois.

La salle et la classe se désignent de la même façon, par le nom qu'elles portent chez vous. Si elles n'existent pas encore dans MeetingHub, le dépôt les crée : un établissement de quarante salles n'a pas à les saisir avant de pouvoir déposer son planning. Une salle ainsi créée est une salle de cours, de 80 places.

Vous ne fixez pas l'heure d'ouverture de la salle : elle se déduit du type de salle. Une salle de cours s'ouvre 10 minutes avant le début et se ferme 15 minutes après la fin.

Essayer avant d'écrire

PUT /api/institutions/:institutionId/lessons?dryRun=true

Rien n'est écrit, et le rapport dit ce qui serait fait — conflits compris. Pour un premier dépôt de deux mille cours, faites-le.

Lire le rapport

La réponse détaille le sort de chaque cours :

{ "dryRun": false, "read": 3,
  "created": 1, "updated": 1, "unchanged": 0, "cancelled": 0, "rejected": 1,
  "roomsCreated": 1, "groupsCreated": 0,
  "lines": [
    { "ref": "ENT-12345", "outcome": "created", "sessionId": "…" },
    { "ref": "ENT-12346", "outcome": "updated", "sessionId": "…" },
    { "ref": "ENT-12347", "outcome": "rejected", "sessionId": null,
      "reason": "salle « salle-204 » déjà occupée de … à …" } ] 
}

Un cours refusé n'empêche pas les autres de passer : le dépôt applique ce qui est valable et détaille le reste. Gardez le sessionId des cours créés : c'est l'identifiant du cours dans MeetingHub, le :lessonId des adresses, et c'est lui que porteront les webhooks de feuille de présence.

Les refus les plus courants

La liste complète est dans la référence.

Ce que le dépôt n'efface pas

Un cours absent du dépôt n'est PAS annulé. Ce n'est pas un oubli : un export tronqué par une panne effacerait sinon un trimestre entier, et personne ne s'en apercevrait avant lundi matin.

Pour annuler, dites-le explicitement, de l'une des deux façons :

PUT /api/institutions/:institutionId/lessons                    → une entrée avec "cancelled": true
DELETE /api/institutions/:institutionId/lessons/by-ref/ENT-12345

Annuler deux fois, ou annuler ce qui n'existe pas, est sans effet.

Un cours déjà tenu ne se déplace plus : sa feuille de présence porte l'heure à laquelle les gens sont venus.

Relire l'emploi du temps

GET /api/institutions/:institutionId/lessons?from=2026-10-12T00:00:00Z&to=2026-10-19T00:00:00Z

Il faut la portée schedule:read. La réponse rend, dans lessons, les cours de la période, annulés compris, avec leur état : à venir, en cours, terminé ou annulé.