Generi il programma dell’evento e rilevi le sovrapposizioni
Un intervento alle 09:00 di 60 minuti finisce alle 10:00, e un panel che inizia alle 09:45 si sovrappone per 15 minuti: il generatore ordina le sessioni, calcola ogni ora di fine e segnala ogni conflitto prima che il programma vada in stampa. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Nome dell'evento
- Product Leadership Summit
- Numero di sessioni
- 3
Trasformi un elenco di sessioni, orari di inizio e durate in un programma ordinato senza calcolare manualmente. Il generatore dispone ogni sessione, ne ricava l’ora finale esatta, segnala quelle che superano la mezzanotte e riporta le sovrapposizioni con la relativa durata. È utile per conferenze, laboratori, eventi locali, giornate formative e qualsiasi agenda in cui un errore possa confondere relatori, personale o partecipanti.
Inserisca un calendario iniziale affidabile
Inizi dal nome dell’evento e aggiunga un record per ogni sessione che intende pubblicare. Ciascun record richiede un nome chiaro, un orario di inizio nel formato HH:MM a 24 ore e una durata positiva espressa in minuti interi. Il formato a 24 ore elimina l’ambiguità tra mattina e sera, mentre i minuti descrivono con precisione sia una breve pausa sia un lungo laboratorio.
Il generatore ordina i record per ora di inizio, quindi non è necessario inserirli già in sequenza cronologica. Scelga comunque nomi distinti e leggibili, perché compaiono nel rapporto e aiutano a individuare subito un conflitto. Consideri l’elenco inviato come il piano ufficiale di una giornata.
Se una sessione inizia tardi e supera la mezzanotte, l’ora finale passa al giorno successivo e lo scarto giornaliero rende esplicita la transizione. Agende vuote, orari non validi, nomi mancanti e durate non positive vengono rifiutati anziché produrre un programma solo apparentemente plausibile.
Legga gli orari finali e gli avvisi di sovrapposizione
Il risultato contiene il nome dell’evento, il numero di sessioni, l’elenco cronologico, un indicatore generale e il dettaglio delle sovrapposizioni. Ogni sessione conserva inizio e durata e aggiunge l’ora finale calcolata. Uno scarto giornaliero pari a zero indica che termina lo stesso giorno; il valore uno segnala la conclusione dopo la mezzanotte seguente.
Due sessioni si sovrappongono quando la seconda comincia prima che finisca la prima. Se una termina esattamente alle 10:30 e l’altra inizia alle 10:30, non esiste alcun conflitto. Quando invece c’è un incrocio, la voce identifica entrambe e indica i minuti condivisi, così Lei può decidere se accorciare un intervento, spostare un inizio o usare sale diverse.
Il generatore controlla tutte le coppie pertinenti, non soltanto le righe adiacenti: un laboratorio lungo che attraversa più sessioni brevi produce quindi ogni avviso necessario.
Inserisca il programma nel flusso organizzativo
Rigeneri il programma ogni volta che cambia un orario e usi la risposta strutturata come fonte verificata per sito, e-mail ai partecipanti, agenda stampata, segnaletica o istruzioni ai relatori. In un processo manuale, incolli il piano corrente nello strumento del browser e controlli l’indicatore prima della pubblicazione. Poiché l’algoritmo non usa rete, data corrente, valori casuali o ipotesi nascoste sul calendario, lo stesso input genera sempre lo stesso risultato.
Questa prevedibilità consente di confrontare revisioni e individuare gli orari modificati. Lo strumento non assegna sale, aggiunge tempi di spostamento, deduce fusi orari né risolve i conflitti. Fornisce calcoli precisi e un rapporto completo affinché Lei possa prendere decisioni affidabili.
Casi d'uso
Controllo dell’agenda di una conferenza
Calcoli la fine degli interventi e trovi conflitti di relatori o sale prima di pubblicare il programma.
Pianificazione di una giornata di laboratori
Riunisca lezioni, esercizi, pasti e pause in un calendario cronologico dai confini esatti.
Pubblicazione automatica del programma
Convalidi un’agenda nell’applicazione e invii il risultato a modelli web, e-mail o di stampa.
Domande frequenti
Quale formato orario devo usare?
Usi il formato HH:MM a 24 ore, per esempio 09:30 oppure 17:05.
Le sessioni consecutive sono considerate sovrapposte?
No. Se una inizia nel minuto esatto in cui termina l’altra, entrambe restano senza avvisi.
Il generatore può correggere automaticamente un conflitto?
No. Segnala ogni coppia coinvolta e la durata comune; le decisioni su sale, relatori e orari spettano a Lei.
Come capisco se due sessioni del programma si sovrappongono?
Inserisca ogni sessione con orario di inizio e durata. Il generatore confronta tutte le coppie, non solo le righe vicine, e riporta i due nomi con i minuti in comune, come i 15 minuti tra un intervento alle 09:00 e un panel alle 09:45.
Cosa succede se una sessione finisce dopo mezzanotte?
L’ora di fine passa al giorno successivo e il programma indica che termina il giorno dopo, così una sessione notturna non sembra mai finire prima di essere iniziata.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/doc/event-program-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"event_name":"Product Leadership Summit","sessions":[{"name":"Opening keynote","start_time":"09:00","duration_minutes":60},{"name":"Strategy panel","start_time":"09:45","duration_minutes":45},{"name":"Networking break","start_time":"10:30","duration_minutes":20}]}'const res = await fetch("https://api.kit.forhosting.com/doc/event-program-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"event_name": "Product Leadership Summit",
"sessions": [
{
"name": "Opening keynote",
"start_time": "09:00",
"duration_minutes": 60
},
{
"name": "Strategy panel",
"start_time": "09:45",
"duration_minutes": 45
},
{
"name": "Networking break",
"start_time": "10:30",
"duration_minutes": 20
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/doc/event-program-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"event_name": "Product Leadership Summit",
"sessions": [
{
"name": "Opening keynote",
"start_time": "09:00",
"duration_minutes": 60
},
{
"name": "Strategy panel",
"start_time": "09:45",
"duration_minutes": 45
},
{
"name": "Networking break",
"start_time": "10:30",
"duration_minutes": 20
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/doc/event-program-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"event_name":"Product Leadership Summit","sessions":[{"name":"Opening keynote","start_time":"09:00","duration_minutes":60},{"name":"Strategy panel","start_time":"09:45","duration_minutes":45},{"name":"Networking break","start_time":"10:30","duration_minutes":20}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"event_name":"Product Leadership Summit","sessions":[{"name":"Opening keynote","start_time":"09:00","duration_minutes":60},{"name":"Strategy panel","start_time":"09:45","duration_minutes":45},{"name":"Networking break","start_time":"10:30","duration_minutes":20}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/doc/event-program-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"event_name": "Product Leadership Summit",
"sessions": [
{
"name": "Opening keynote",
"start_time": "09:00",
"duration_minutes": 60
},
{
"name": "Strategy panel",
"start_time": "09:45",
"duration_minutes": 45
},
{
"name": "Networking break",
"start_time": "10:30",
"duration_minutes": 20
}
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "doc.event_program_generate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_mb | 25 |
max_pages | 200 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Inserisca il programma nel flusso organizzativo
In un processo automatizzato, richiami l’API a $0.002 quando viene salvata l’agenda, impedisca la pubblicazione se has_overlaps è vero e trasferisca i campi calcolati nel modello del documento.
Domande tecniche
Quanto costa?
Ogni richiesta API costa $0.002; la versione per browser può essere eseguita localmente in questa pagina.
Che cosa accade se una sessione supera la mezzanotte?
L’ora finale passa al giorno successivo e day_offset indica quanti giorni dopo l’inizio termina.