Esportare un calendario di Teams in Excel: guida completa con Outlook, vista Elenco e Graph API

Hai bisogno di portare in Excel tutti gli eventi del calendario di un Team di Microsoft 365? In questa guida trovi metodi pratici, limiti noti e soluzioni scalabili: da Outlook classico e vista Elenco fino ad approcci automatizzati con Graph API o Power Automate, con consigli su fusi orari, cache e importazione in Excel.

Indice

Panoramica del problema

Un’utente desidera esportare in Excel l’intero calendario di un Team, cioè il calendario di gruppo associato a Microsoft Teams. Facendo affidamento sull’opzione nativa in Teams o sulla nuova esperienza di Outlook, però, ottiene solo parte degli eventi, per esempio agosto e una porzione di settembre. In molte configurazioni il calendario del gruppo non compare nemmeno nell’elenco dei calendari esportabili in Outlook, verosimilmente perché risiede nella cassetta postale del gruppo e non nella cassetta postale personale.

Qui sotto trovi una sintesi delle soluzioni che funzionano oggi nella pratica, con pro e contro. Poco più avanti troverai le procedure dettagliate, consigli operativi e una sezione dedicata all’automazione via Microsoft Graph e Power Automate.

Soluzioni pratiche a confronto

ApproccioPassaggi essenzialiProContro / Limitazioni
Esportazione da Outlook classicoAprire Outlook in modalità classica. File → Apri ed esporta → Importa/Esporta. Scegliere Esporta in un fileCSV. Selezionare il calendario da esportare e salvare. Aprire il CSV in Excel.Metodo supportato, conserva i campi data e ora in formato corretto.Il calendario di gruppo non compare finché non viene copiato nella propria cassetta postale.
Copia del calendario condivisoIn vista Calendario, passare alla vista Elenco. Fare clic destro sul calendario condiviso → Copia calendario. Incollare la copia nella gerarchia Calendario del proprio account Exchange. Esportare la copia con il metodo CSV sopra.Consente l’esportazione completa di calendari condivisi standard.L’opzione non esiste per i veri calendari di gruppo di Microsoft 365.
Vista Elenco con copia e incollaIn vista Elenco, selezionare tutti gli eventi. Copiare e incollare direttamente in Excel o in un editor di testo, poi salvare come CSV.Funziona anche quando Copia calendario non è disponibile; veloce per intervalli circoscritti.Richiede scorrere per estendere la cache locale e talvolta sistemare la formattazione.
Soluzione programmaticaUsare Microsoft Graph CalendarView o un flusso Power Automate per esportare gli eventi per intervalli e salvarli in Excel o CSV.Automazione riutilizzabile, adatta a report periodici e dataset di grandi dimensioni.Richiede permessi e competenze su API o Power Automate.

Perché l’esportazione nativa spesso non basta

Il calendario di un Team è un calendario di gruppo memorizzato nella cassetta postale dell’oggetto gruppo di Microsoft 365, non nella cassetta personale. L’esperienza utente in Teams e nella nuova app Outlook privilegia la visualizzazione e la collaborazione, mentre l’esportazione completa dei dati non è sempre esposta come comando diretto, soprattutto per gli oggetti appartenenti a un gruppo e non al singolo utente. Inoltre, le viste calendario mostrano per impostazione predefinita finestre temporali parziali; se il client non ha sincronizzato gli eventi più vecchi, azioni come copia incolla o esportazioni basate sulla vista potrebbero includere solo ciò che è già in cache.

La chiave è quindi portare gli eventi nella tua cassetta postale oppure forzare il client a sincronizzare l’intero intervallo prima dell’export, oppure ancora aggirare l’interfaccia utente usando servizi e API della piattaforma.

Guida passo per passo con Outlook classico

Quando disponibile, Outlook classico resta il percorso più affidabile per generare un file CSV ben formato direttamente dal calendario. Se il calendario di gruppo non è esportabile, il trucco è creare una copia del contenuto nella tua cassetta postale o usare una vista Elenco che mostri tutto, quindi esportare.

Preparazione in vista Elenco

  • Apri Outlook e passa a Calendario.
  • Apri il calendario del Team nella stessa finestra affiancandolo al tuo.
  • Dal menu Visualizza, scegli Cambia vista e seleziona Elenco. Questa vista mostra ogni evento come riga, con colonne filtrabili.
  • Scorri fino al più vecchio evento che ti serve. Questa azione forza Outlook a sincronizzare elementi fuori dalla cache predefinita.
  • Facoltativo ma consigliato: aggiungi colonne utili come Organizzatore, Creazione, Ultima modifica, Categoria, Partecipanti obbligatori, Partecipanti facoltativi per un export più ricco.

Esportazione diretta con Importa/Esporta

  1. Vai su FileApri ed esportaImporta/Esporta.
  2. Seleziona Esporta in un file e poi Valori separati da virgola o Valori separati da punto e virgola in base alla localizzazione del tuo Excel.
  3. Nell’albero delle cartelle, scegli il calendario nella tua cassetta postale che contiene gli elementi da esportare. Se stai vedendo il calendario del gruppo e non lo vedi qui, vedi il paragrafo sulla copia del calendario.
  4. Scegli la cartella di destinazione e il nome del file CSV, quindi premi Fine.
  5. Se appare la mappatura campi, verifica che i principali campi siano inclusi: Soggetto, Data inizio, Ora inizio, Data fine, Ora fine, Località, Descrizione, Organizzatore, Partecipanti, Tutto il giorno, Promemoria, Categoria.

Cosa fare se il calendario di gruppo non è esportabile

Se l’oggetto calendario che vedi in Outlook non è elencato tra le cartelle esportabili, è molto probabile che si tratti di un vero calendario di gruppo Microsoft 365. In questo caso puoi:

  • Creare una copia locale degli eventi: in vista Elenco, seleziona tutte le righe con Ctrl+A, poi trascina e rilascia sugli Appuntamenti del tuo calendario personale. In alternativa usa Copia e Incolla tra cartelle.
  • Usare copia e incolla in Excel: sempre in vista Elenco, seleziona con Ctrl+A, poi Copia e incolla in un foglio Excel. Excel creerà una tabella con le colonne della vista corrente. Successivamente potrai salvare come CSV.
  • Usare una cartella di calendario di appoggio: crea sotto il tuo account Exchange una nuova cartella Calendario temporanea, incolla lì gli eventi e poi avvia l’esportazione CSV da quella cartella.

Ottimizzazione della vista Elenco

La vista è il cuore per una buona esportazione via UI, perché determina le colonne, l’ordinamento e perfino quante righe il client decide di sincronizzare.

  • Filtro e intervallo: rimuovi eventuali filtri di intervallo. Scegli Mostra tutti gli appuntamenti e ordina per Data inizio crescente, così puoi scorrere fino all’anno più vecchio richiesto.
  • Colonne: include i campi essenziali per evitare ambiguità in Excel. Per esempio:
    • Soggetto
    • Data inizio, Ora inizio, Data fine, Ora fine
    • Tutto il giorno, Fuso orario, Durata
    • Località
    • Organizzatore, Partecipanti obbligatori, Partecipanti facoltativi
    • Descrizione o Corpo
    • Categoria, Sensibilità
    • Creato il, Modificato il
  • Estensione della cache: scorri con la rotellina o premi ripetutamente Fine per caricare gli eventi meno recenti. Aspetta che la lista si popoli completamente prima di copiare.

Consigli operativi per evitare dati imprecisi

Scaricare l’intero intervallo prima di esportare

In Outlook, nella vista Elenco scorri fino all’evento più vecchio da includere. Questo passaggio forza il download degli elementi storici. Solo dopo esegui l’esportazione o la copia in Excel, altrimenti rischi di perdere mesi di storico.

Controllare il fuso orario

Allinea il fuso orario di Outlook, del sistema operativo e di Excel. Qualsiasi discrepanza può trasformare un evento delle nove in un evento delle dieci una volta importato. Se stai preparando un CSV da condividere, considera di normalizzare le date in formato ISO AAAA-MM-GG e gli orari in HH:MM nel fuso orario desiderato.

Importare correttamente in Excel

Apri Excel e usa Dati → Da testo/CSV. In questo modo Excel:

  • Riconosce automaticamente il separatore di campo coerente con il file.
  • Mappa correttamente date e orari evitando conversioni involontarie.
  • Conserva i caratteri speciali del corpo dell’evento senza perdita.

Gestire le occorrenze ricorrenti

Eventi ricorrenti possono espandersi in molte righe. Se l’obiettivo è l’analisi, va bene. Se vuoi invece l’oggetto “matrice” della ricorrenza, l’interfaccia non lo esporta nativamente: considera l’API o una vista personalizzata che mostri i campi di ricorrenza principali.

Soluzione con copia del calendario

Per i calendari condivisi standard la funzione Copia calendario può essere disponibile con clic destro sulla cartella. Copiando il calendario nella tua cassetta postale, l’esportazione CSV funzionerà come per un calendario personale. Tieni presente che questa opzione non è disponibile per i veri calendari di gruppo M365 associati ai Team. In quel caso, ricorri alla vista Elenco con copia in una cartella personale oppure all’automazione via Graph.

Approccio con copia e incolla

Quando l’esportazione diretta non è possibile, la vista Elenco permette di selezionare le righe e incollarle in Excel. È essenziale che le colonne in vista siano esattamente quelle che ti occorrono in Excel. Dopo l’incolla:

  • Controlla che il formato data sia coerente e uniforme.
  • Verifica i campi multi valore, come i partecipanti, che potrebbero essere separati da punto e virgola.
  • Se serve, salva il foglio come CSV impostando l’encoding in UTF con BOM per preservare caratteri accentati.

Automazione con Microsoft Graph e Power Automate

Per esigenze ricorrenti, dataset estesi o processi governati, l’automazione elimina l’errore manuale e rende ripetibile l’export. Le due vie principali sono:

  • Microsoft Graph: chiamate REST per leggere gli eventi del gruppo ed esportarli in CSV.
  • Power Automate: flussi che leggono il calendario di gruppo e scrivono in Excel o in un file CSV su OneDrive o SharePoint.

Concetti di base per Microsoft Graph

Un Team è legato a un oggetto Group. Il calendario vive in /groups/{groupId}/calendar. Le chiamate tipiche sono:

GET /v1.0/groups/{groupId}/calendarView?startDateTime=2025-01-01T00:00:00Z&endDateTime=2025-12-31T23:59:59Z
GET /v1.0/groups/{groupId}/events?$select=subject,organizer,start,end,location,bodyPreview,attendees
GET /v1.0/groups/{groupId}/calendar/calendarView?startDateTime=...&endDateTime=...&$top=999&$skip=...&$select=...

CalendarView è ideale per intervalli temporali perché restituisce le occorrenze espanse degli eventi ricorrenti nella finestra indicata. Ricorda di paginare con $top e cursori, e di ripetere la chiamata per ciascun intervallo annuale o trimestrale se l’arco temporale è molto ampio.

Esempio di esportazione in CSV con PowerShell

Lo script seguente illustra la logica. Devi disporre di un’app registrata e delle autorizzazioni adeguate per leggere gli eventi del gruppo.

# Pseudocodice PowerShell per esportare eventi del gruppo in CSV
Richiede: MSAL.PS o Microsoft.Graph moduli con autenticazione già effettuata

$GroupId = "00000000-0000-0000-0000-000000000000"
$Start = "2025-01-01T00:00:00Z"
$End   = "2025-12-31T23:59:59Z"

$select = "subject,organizer,start,end,location,bodyPreview,attendees,isAllDay,onlineMeetingUrl,categories"

$events = @()
$uri = "[https://graph.microsoft.com/v1.0/groups/$GroupId/calendar/calendarView?startDateTime=$Start&endDateTime=$End&`$select=$select&`$top=200](https://graph.microsoft.com/v1.0/groups/$GroupId/calendar/calendarView?startDateTime=$Start&endDateTime=$End&`$select=$select&`$top=200)"

while ($uri) {
$resp = Invoke-RestMethod -Method GET -Uri $uri -Headers @{ Authorization = "Bearer $token" }
$events += $resp.value
$uri = $resp.'@odata.nextLink'
}

Proiezione in oggetti piatti per CSV

$rows = $events | ForEach-Object {
[PSCustomObject]@{
Soggetto        = $*.subject
InizioData      = $*.start.dateTime
InizioFuso      = $*.start.timeZone
FineData        = $*.end.dateTime
FineFuso        = $*.end.timeZone
Localita        = $*.location.displayName
Organizzatore   = $*.organizer.emailAddress.name
Partecipanti    = ($.attendees | ForEach-Object { $.emailAddress.address }) -join "; "
TuttoIlGiorno   = $*.isAllDay
Categorie       = ($*.categories) -join "; "
CorpoAnteprima  = $*.bodyPreview
}
}

$rows | Export-Csv -Path ".\CalendarioTeam.csv" -NoTypeInformation -Encoding UTF8 

Esempio di esportazione in CSV con Python

Il seguente frammento mostra come chiamare Graph, paginare e scrivere un CSV. Anche qui è necessario un token valido con permessi sul gruppo.

import csv, requests

GROUP_ID = "00000000-0000-0000-0000-000000000000"
START = "2025-01-01T00:00:00Z"
END   = "2025-12-31T23:59:59Z"
SELECT = "subject,organizer,start,end,location,bodyPreview,attendees,isAllDay,categories"
TOKEN = "eyJ..."  # Inserisci un access token valido

url = f"[https://graph.microsoft.com/v1.0/groups/{GROUPID}/calendar/calendarView](https://graph.microsoft.com/v1.0/groups/{GROUPID}/calendar/calendarView)"
params = {
"startDateTime": START,
"endDateTime": END,
"$select": SELECT,
"$top": "200"
}
headers = {"Authorization": f"Bearer {TOKEN}"}

events = []
while url:
r = requests.get(url, headers=headers, params=params)
data = r.json()
events.extend(data.get("value", []))
url = data.get("@odata.nextLink")
params = None  # la nextLink ha già querystring completa

with open("CalendarioTeam.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.writer(f, delimiter=",")
writer.writerow([
"Soggetto","InizioData","InizioFuso","FineData","FineFuso",
"Localita","Organizzatore","Partecipanti","TuttoIlGiorno","Categorie","CorpoAnteprima"
])
for ev in events:
attendees = "; ".join(a["emailAddress"]["address"] for a in ev.get("attendees", []))
writer.writerow([
ev.get("subject",""),
ev["start"]["dateTime"], ev["start"]["timeZone"],
ev["end"]["dateTime"], ev["end"]["timeZone"],
ev.get("location",{}).get("displayName",""),
ev.get("organizer",{}).get("emailAddress",{}).get("name",""),
attendees, ev.get("isAllDay", False),
"; ".join(ev.get("categories", [])),
ev.get("bodyPreview","").replace("\n"," ").replace("\r"," ")
]) 

Quando preferire Power Automate

Se non vuoi gestire token e codice, un flusso fa al caso tuo. Una possibile struttura:

  1. Trigger manuale o pianificato settimanalmente.
  2. Azione per elencare gli eventi del calendario di gruppo nell’intervallo desiderato. Se l’azione standard non è disponibile nel tuo tenant, usa un’azione HTTP con Graph.
  3. Applicare a ognuno: per ogni evento, costruisci un oggetto con i campi di interesse.
  4. Scrivere in Excel con la connettività OneDrive o SharePoint, oppure comporre righe CSV e salvare su un file.

Vantaggi dell’approccio a flusso: esecuzione automatica, log centralizzato, facile riuso. Svantaggi: limiti di connettore, gestione delle paginazioni e delle ricorrenze da modellare con attenzione.

Struttura consigliata del CSV

Per evitare sorprese nella fase di analisi in Excel o Power BI, mantieni coerenti i nomi e i formati dei campi. Un esempio robusto:

ColonnaDescrizioneEsempioNote
SoggettoTitolo dell’eventoRiunione settimanaleTesto libero
InizioDataData di inizio2025-09-15Formato ISO consigliato
InizioOraOra di inizio09:30Ventiquattro ore
FineDataData di fine2025-09-15Formato ISO
FineOraOra di fine10:30Ventiquattro ore
TuttoIlGiornoEvento di tutta la giornataTRUEBooleano
LocalitaLuogo o link riunioneSala EuropaTesto libero
OrganizzatoreNome dell’organizzatoreMario RossiDa indirizzo mittente
PartecipantiElenco indirizzia@contoso.com; b@contoso.comSeparatore punto e virgola
CategorieEtichette coloreProgetto APiù valori separati
CorpoDescrizione o agendaPunti da discutere…Rimuovi eventuale HTML

Verifiche di qualità post esportazione

  • Campi vuoti sospetti: se molti eventi hanno Località o Partecipanti vuoti, verifica la mappatura dei campi o la vista usata per copiare.
  • Fusi orari misti: controlla che tutti gli orari siano nel fuso atteso. Se hai scaricato con Graph, il campo timeZone ti aiuta a normalizzare.
  • Duplicati da ricorrenza: normalizza con una chiave composta da subject + start + end se non ti serve la duplicazione per occorrenza.
  • Encoding: salva in UTF con BOM per accenti corretti in ogni strumento.

Domande frequenti

Perché vedo solo alcuni mesi quando copio dalla vista Elenco

Perché la cache locale non ha ancora scaricato gli eventi più vecchi. Scorri fino alla data più antica, attendi che la lista si popoli, poi riprova.

Posso esportare direttamente dal client Teams

Teams non espone un comando per esportare un intero calendario di gruppo in CSV o Excel. La strada più robusta passa da Outlook o dalle API.

La nuova app Outlook consente l’esportazione completa

La nuova esperienza punta sulla semplicità e non sempre include le stesse funzioni della versione classica per l’esportazione granulare. Se non trovi l’opzione che ti serve, usa la vista Elenco con copia incolla oppure le API.

Serve essere proprietari del Team per usare Graph

Servono autorizzazioni adeguate per leggere il calendario del gruppo. A livello di app o delegato, l’amministratore potrebbe dover concedere i permessi. Se ricevi errori di accesso, verifica scopes e consenso.

Strategie per report ricorrenti

Se produci un report mensile o trimestrale sulle riunioni del Team, evitare la manualità paga nel medio periodo. Un possibile disegno:

  1. Un flusso Power Automate pianificato che estrae l’ultimo mese e scrive in un foglio Excel strutturato con intestazioni stabili.
  2. Un job Python o PowerShell in un ambiente controllato che, una volta a settimana, chiama Graph per il delta degli eventi e aggiorna un CSV su SharePoint.
  3. Un modello in Excel o Power BI collegato al file, con misure predefinite per conteggiare eventi, durate per categoria e tassi di adesione.

Checklist rapida

  • Apri il calendario del Team in Outlook, passa a Elenco, estendi la vista fino alla data più vecchia.
  • Se possibile, copia gli eventi in una cartella Calendario della tua cassetta postale.
  • Usa Importa/Esporta per generare il CSV.
  • In alternativa, copia le righe da Elenco e incollale in Excel.
  • Per processi ripetuti, implementa Graph o Power Automate.
  • Controlla fuso orario, formati data e encoding prima dell’analisi.

Suggerimenti avanzati

  • Normalizzazione dei link riunione: se vuoi un campo con l’URL del meeting, in molti casi è presente nel corpo dell’evento. Con Graph puoi estrarre onlineMeeting o analizzare il bodyPreview. In Excel, una formula testo ti consente di isolare l’URL.
  • Campi personalizzati: se usi categorie per progetti, mantieni un mapping in un foglio di supporto. Così potrai costruire misure come “ore per progetto”.
  • Controllo qualità automatico: crea una regola che evidenzi in rosso eventi senza partecipanti o senza località per interventi manuali prima dell’export.
  • Archivio storico: conserva i CSV per anno con lo stesso schema colonne; semplificherai unione e confronti longitudinali.

Cosa evitare

  • Affidarti alla sola vista nativa di Teams per l’export di grandi intervalli.
  • Incollare direttamente senza aver esteso la cache: rischi un dataset monco.
  • Ignorare i fusi orari quando condividi con team in paesi diversi.
  • Modificare manualmente centinaia di righe in Excel se l’operazione è ricorrente: automatizza.

Conclusione

Al momento non esiste un pulsante nativo in Teams per esportare un intero calendario di gruppo in Excel. Il percorso più solido è passare da Outlook classico: portare gli eventi nella cassetta postale personale tramite copia, oppure usare la vista Elenco per selezionare e incollare i dati in Excel, quindi esportare o salvare in CSV. Per esigenze scalabili e ripetibili, l’integrazione con Microsoft Graph o Power Automate è la scelta consigliata: consente estrazioni programmate, controllo del perimetro temporale, gestione delle ricorrenze e formati pronti per l’analisi.


Riepilogo operativo

  • Esporta con Importa/Esporta di Outlook quando il calendario è nella tua cassetta postale.
  • Per calendari di gruppo, usa vista Elenco e copia verso una cartella personale o direttamente in Excel.
  • Per flussi ricorrenti, usa Graph o Power Automate con CalendarView per intervalli definiti.
  • Controlla sempre fuso orario, formati e completezza dell’intervallo prima di condividere il file.

Seguendo queste indicazioni otterrai un export completo, consistente e pronto per essere analizzato in Excel senza sorprese.

Indice