Events: import

Importa un evento. Questa operazione viene utilizzata per aggiungere una copia privata di un evento esistente a un calendario. Prova subito o guarda un esempio.

Richiesta

Richiesta HTTP

POST https://www.googleapis.com/calendar/v3/calendars/calendarId/events/import

Parametri

Nome del parametro Valore Descrizione
Parametri del percorso
calendarId string Identificatore del calendario. Per recuperare gli ID calendario, chiama il metodo calendarList.list. Utilizza la parola chiave "primary" per accedere al calendario principale dell'utente che ha eseguito l'accesso.
Parametri di query facoltativi
conferenceDataVersion integer Numero di versione dei dati di conferenza supportato dal client API. La versione 0 presuppone che non vi sia supporto per i dati relativi alle conferenze e ignora i dati relativi alle conferenze nel corpo dell'evento. La versione 1 supporta la copia di ConferenceData e la creazione di nuove conferenze utilizzando il campo createRequest di conferenceData. Il valore predefinito è 0. I valori accettati sono compresi tra 0 e 1.
supportsAttachments boolean Indica se l'operazione di esecuzione del client API supporta i collegamenti agli eventi. Campo facoltativo. Il valore predefinito è False.

Autorizzazione

Questa richiesta richiede l'autorizzazione con almeno uno dei seguenti ambiti:

Ambito
https://www.googleapis.com/auth/calendar
https://www.googleapis.com/auth/calendar.events

Per ulteriori informazioni, consulta la pagina relativa all'autenticazione e autorizzazione.

Corpo della richiesta

Nel corpo della richiesta, fornisci una risorsa Eventi con le seguenti proprietà:

Nome proprietà Valore Descrizione Note
Proprietà obbligatorie
end nested object L'ora di fine (esclusiva) dell'evento. Per un evento ricorrente, è l'ora di fine della prima istanza.
iCalUID string Identificatore univoco dell'evento come definito in RFC5545. Viene utilizzato per identificare in modo univoco gli eventi nei sistemi di calendario e deve essere fornito durante l'importazione degli eventi tramite il metodo import.

Tieni presente che iCalUID e id non sono identici e solo uno di questi deve essere fornito al momento della creazione dell'evento. Una differenza nella loro semantica è che, negli eventi ricorrenti, tutte le occorrenze di un evento hanno id diversi mentre condividono gli stessi iCalUID. Per recuperare un evento utilizzando il relativo iCalUID, chiama il metodo events.list utilizzando il parametro iCalUID. Per recuperare un evento utilizzando il relativo id, chiama il metodo events.get.

start nested object L'ora di inizio (inclusa) dell'evento. Per un evento ricorrente, è l'ora di inizio della prima istanza.
Proprietà facoltative
anyoneCanAddSelf boolean Indica se chiunque può invitare se stesso all'evento (Opzione deprecata). Campo facoltativo. Il valore predefinito è False. scrivibile
attachments[].fileUrl string Link URL all'allegato.

Per aggiungere allegati di file di Google Drive, utilizza lo stesso formato della proprietà alternateLink della risorsa Files nell'API Drive.

Obbligatorio quando si aggiunge un allegato.

scrivibile
attendees[] list I partecipanti all'evento. Per ulteriori informazioni sulla pianificazione di eventi con altri utenti del calendario, consulta la guida Eventi con partecipanti. Gli account di servizio devono utilizzare la delega dell'autorità a livello di dominio per compilare l'elenco dei partecipanti. scrivibile
attendees[].additionalGuests integer Numero di ospiti aggiuntivi. Campo facoltativo. Il valore predefinito è 0. scrivibile
attendees[].comment string Il commento della risposta del partecipante. Campo facoltativo. scrivibile
attendees[].displayName string Il nome del partecipante, se disponibile. Campo facoltativo. scrivibile
attendees[].email string L'indirizzo email del partecipante, se disponibile. Questo campo deve essere presente quando si aggiunge un partecipante. Deve essere un indirizzo email valido secondo RFC5322.

Obbligatorio quando aggiungi un partecipante.

scrivibile
attendees[].optional boolean Indica se si tratta di un partecipante facoltativo. Campo facoltativo. Il valore predefinito è False. scrivibile
attendees[].resource boolean Se il partecipante è una risorsa. Può essere impostato solo quando il partecipante viene aggiunto all'evento per la prima volta. Le modifiche successive vengono ignorate. Campo facoltativo. Il valore predefinito è False. scrivibile
attendees[].responseStatus string Lo stato della risposta del partecipante. I valori possibili sono:
  • "needsAction" - Il partecipante non ha risposto all'invito (consigliato per i nuovi eventi).
  • "declined" - Il partecipante ha rifiutato l'invito.
  • "tentative" - Il partecipante ha accettato provvisoriamente l'invito.
  • "accepted" - Il partecipante ha accettato l'invito.
scrivibile
attendeesOmitted boolean Indica se i partecipanti possono essere stati omessi dalla rappresentazione dell'evento. Quando si recupera un evento, ciò potrebbe essere dovuto a una limitazione specificata dal parametro di query maxAttendee. Quando aggiorni un evento, questa impostazione può essere utilizzata solo per aggiornare la risposta del partecipante. Campo facoltativo. Il valore predefinito è False. scrivibile
colorId string Il colore dell'evento. Si tratta di un ID che fa riferimento a una voce nella sezione event della definizione dei colori (vedi l'endpoint dei colori). Campo facoltativo. scrivibile
conferenceData nested object Le informazioni correlate alla conferenza, ad esempio i dettagli di una conferenza di Google Meet. Per creare nuovi dettagli della conferenza, utilizza il campo createRequest. Per mantenere le modifiche, ricordati di impostare il parametro di richiesta conferenceDataVersion su 1 per tutte le richieste di modifica degli eventi. scrivibile
description string Descrizione dell'evento. Possono contenere HTML. Campo facoltativo. scrivibile
end.date date La data, nel formato "aaaa-mm-gg", se l'evento dura tutto il giorno. scrivibile
end.dateTime datetime L'ora, sotto forma di valore combinato di data e ora (formattato in base a RFC3339). È necessario specificare un fuso orario diverso, a meno che non venga specificato esplicitamente un fuso orario in timeZone. scrivibile
end.timeZone string Il fuso orario in cui viene specificata l'ora. (Formato come nome di un database dei fusi orari IANA, ad esempio "Europa/Zurich"). Per gli eventi ricorrenti questo campo è obbligatorio e specifica il fuso orario in cui viene espansa la ricorrenza. Per i singoli eventi questo campo è facoltativo e indica un fuso orario personalizzato per l'inizio e la fine dell'evento. scrivibile
extendedProperties.private object Proprietà private per la copia dell'evento visualizzato in questo calendario. scrivibile
extendedProperties.shared object Proprietà condivise tra le copie dell'evento sui calendari degli altri partecipanti. scrivibile
focusTimeProperties nested object Dati sugli eventi relativi al momento di concentrazione. Utilizzato se eventType è focusTime. scrivibile
gadget.display string La modalità di visualizzazione del gadget. Deprecato. I valori possibili sono:
  • "icon": il gadget viene mostrato accanto al titolo dell'evento nella visualizzazione calendario.
  • "chip": il gadget viene visualizzato quando si fa clic sull'evento.
scrivibile
gadget.height integer L'altezza del gadget in pixel. L'altezza deve essere un numero intero maggiore di 0. Campo facoltativo. Deprecato. scrivibile
gadget.preferences object Preferenze. scrivibile
gadget.title string Il titolo del gadget. Deprecato. scrivibile
gadget.type string Il tipo di gadget. Deprecato. scrivibile
gadget.width integer La larghezza del gadget in pixel. La larghezza deve essere un numero intero maggiore di 0. Campo facoltativo. Deprecato. scrivibile
guestsCanInviteOthers boolean Indica se altri partecipanti diversi dall'organizzatore possono invitare altre persone all'evento. Campo facoltativo. Il valore predefinito è True. scrivibile
guestsCanModify boolean Indica se altri partecipanti e non l'organizzatore possono modificare l'evento. Campo facoltativo. Il valore predefinito è False. scrivibile
guestsCanSeeOtherGuests boolean Se altri partecipanti all'evento possono vedere chi sono i partecipanti all'evento. Campo facoltativo. Il valore predefinito è True. scrivibile
location string Posizione geografica dell'evento come testo in formato libero. Campo facoltativo. scrivibile
organizer object L'organizzatore dell'evento. Se l'organizzatore è anche un partecipante, ciò viene indicato con una voce separata in attendees con il campo organizer impostato su True. Per cambiare l'organizzatore, utilizza l'operazione di spostamento. Sola lettura, tranne durante l'importazione di un evento. scrivibile
organizer.displayName string Il nome dell'organizzatore, se disponibile. scrivibile
organizer.email string L'indirizzo email dell'organizzatore, se disponibile. Deve essere un indirizzo email valido secondo RFC5322. scrivibile
originalStartTime.date date La data, nel formato "aaaa-mm-gg", se l'evento dura tutto il giorno. scrivibile
originalStartTime.dateTime datetime L'ora, sotto forma di valore combinato di data e ora (formattato in base a RFC3339). È necessario specificare un fuso orario diverso, a meno che non venga specificato esplicitamente un fuso orario in timeZone. scrivibile
originalStartTime.timeZone string Il fuso orario in cui viene specificata l'ora. (Formato come nome di un database dei fusi orari IANA, ad esempio "Europa/Zurich"). Per gli eventi ricorrenti questo campo è obbligatorio e specifica il fuso orario in cui viene espansa la ricorrenza. Per i singoli eventi questo campo è facoltativo e indica un fuso orario personalizzato per l'inizio e la fine dell'evento. scrivibile
outOfOfficeProperties nested object Dati sugli eventi fuori sede. Utilizzato se eventType è outOfOffice. scrivibile
recurrence[] list Elenco di righe RRULE, EXRULE, RDATE ed EXDATE per un evento ricorrente, come specificato in RFC5545. Tieni presente che le righe DTSTART e DTEND non sono consentite in questo campo; le ore di inizio e di fine degli eventi vengono specificate nei campi start e end. Questo campo viene omesso per i singoli eventi o per le istanze di eventi ricorrenti. scrivibile
reminders.overrides[] list Se l'evento non utilizza i promemoria predefiniti, questa opzione elenca i promemoria specifici per l'evento o, se non è impostato, indica che non è impostato alcun promemoria per l'evento. Il numero massimo di promemoria di override è 5. scrivibile
reminders.overrides[].method string Il metodo utilizzato per il promemoria. I valori possibili sono:
  • "email": i promemoria vengono inviati via email.
  • "popup": i promemoria vengono inviati tramite un popup dell'interfaccia utente.

Obbligatorio quando aggiungi un promemoria.

scrivibile
reminders.overrides[].minutes integer Numero di minuti prima dell'inizio dell'evento in cui dovrebbe essere attivato il promemoria. I valori validi sono compresi tra 0 e 40320 (4 settimane in minuti).

Obbligatorio quando aggiungi un promemoria.

scrivibile
reminders.useDefault boolean Indica se i promemoria predefiniti del calendario si applicano all'evento. scrivibile
sequence integer Numero di sequenza come da iCalendar. scrivibile
source.title string Titolo della fonte, ad esempio il titolo di una pagina web o l'oggetto di un'email. scrivibile
source.url string URL dell'origine che rimanda a una risorsa. Lo schema dell'URL deve essere HTTP o HTTPS. scrivibile
start.date date La data, nel formato "aaaa-mm-gg", se l'evento dura tutto il giorno. scrivibile
start.dateTime datetime L'ora, sotto forma di valore combinato di data e ora (formattato in base a RFC3339). È necessario specificare un fuso orario diverso, a meno che non venga specificato esplicitamente un fuso orario in timeZone. scrivibile
start.timeZone string Il fuso orario in cui viene specificata l'ora. (Formato come nome di un database dei fusi orari IANA, ad esempio "Europa/Zurich"). Per gli eventi ricorrenti questo campo è obbligatorio e specifica il fuso orario in cui viene espansa la ricorrenza. Per i singoli eventi questo campo è facoltativo e indica un fuso orario personalizzato per l'inizio e la fine dell'evento. scrivibile
status string Lo stato dell'evento. Campo facoltativo. I valori possibili sono:
  • "confirmed" - L'evento è confermato. Questo è lo stato predefinito.
  • "tentative" - L'evento è stato confermato provvisoriamente.
  • "cancelled" - L'evento è stato annullato (eliminato). Il metodo list restituisce gli eventi annullati solo in caso di sincronizzazione incrementale (quando vengono specificati syncToken o updatedMin) o se il flag showDeleted è impostato su true. Il metodo get li restituisce sempre.

    Uno stato Annullato rappresenta due stati diversi a seconda del tipo di evento:

    1. Le eccezioni annullate di un evento ricorrente non annullato indicano che questa istanza non dovrebbe più essere presentata all'utente. I clienti dovrebbero archiviare questi eventi per la durata dell'evento ricorrente principale.

      Per le eccezioni annullate è garantito solo il completamento dei valori per i campi id, recurringEventId e originalStartTime. Gli altri campi potrebbero essere vuoti.

    2. Tutti gli altri eventi annullati rappresentano eventi eliminati. I clienti devono rimuovere le copie sincronizzate localmente. Questi eventi annullati spariranno, quindi non fare affidamento sul fatto che sono disponibili a tempo indeterminato.

      Il campo id degli eventi eliminati è garantito solo se viene compilato.

    Nel calendario dell'organizzatore, gli eventi annullati continuano a mostrare i dettagli (riepilogo, luogo e così via) per poterli ripristinare (annullare l'eliminazione). Analogamente, gli eventi a cui l'utente è stato invitato e che è stato rimosso manualmente continuano a fornire dettagli. Tuttavia, le richieste di sincronizzazione incrementali in cui il criterio showDeleted è impostato su false non restituiranno questi dettagli.

    Se un evento cambia il proprio organizzatore (ad esempio tramite l'operazione di spostamento) e l'organizzatore originale non è nell'elenco dei partecipanti, rimarrà un evento annullato la cui compilazione è garantita solo per il campo id.

scrivibile
summary string Titolo dell'evento. scrivibile
transparency string Indica se l'evento blocca determinati orari sul calendario. Campo facoltativo. I valori possibili sono:
  • "opaque" - Valore predefinito. L'evento blocca tempo sul calendario. Equivale a impostare Imposta il mio stato su su Occupato nell'interfaccia utente di Calendar.
  • "transparent": l'evento non blocca tempo nel calendario. Equivale a impostare Imposta il mio stato su su Disponibile nell'interfaccia utente di Calendar.
scrivibile
visibility string Visibilità dell'evento. Campo facoltativo. I valori possibili sono:
  • "default": utilizza la visibilità predefinita per gli eventi del calendario. Questo è il valore predefinito.
  • "public": l'evento è pubblico e i relativi dettagli sono visibili a tutti i lettori del calendario.
  • "private" - L'evento è privato e solo i partecipanti possono visualizzarne i dettagli.
  • "confidential" - L'evento è privato. Questo valore viene fornito per motivi di compatibilità.
scrivibile

Risposta

In caso di esito positivo, questo metodo restituisce una risorsa Eventi nel corpo della risposta.

Esempi

Nota: gli esempi di codice disponibili per questo metodo non rappresentano tutti i linguaggi di programmazione supportati (consulta la pagina relativa alle librerie client per un elenco dei linguaggi supportati).

Java

Utilizza la libreria client Java.

import com.google.api.services.calendar.Calendar;
import com.google.api.services.calendar.model.Event;
import com.google.api.services.calendar.model.EventAttendee;
import com.google.api.services.calendar.model.EventDateTime;
import com.google.api.client.util.DateTime;

import java.util.Date;
// ...

// Initialize Calendar service with valid OAuth credentials
Calendar service = new Calendar.Builder(httpTransport, jsonFactory, credentials)
    .setApplicationName("applicationName").build();

// Create and initialize a new event (could also retrieve an existing event)
Event event = new Event();
event.setICalUID("originalUID");

Event.Organizer organizer = new Event.Organizer();
organizer.setEmail("organizerEmail");
organizer.setDisplayName("organizerDisplayName");
event.setOrganizer(organizer);

ArrayList<EventAttendee> attendees = new ArrayList<EventAttendee>();
attendees.add(new EventAttendee().setEmail("attendeeEmail"));
// ...
event.setAttendees(attendees);

Date startDate = new Date();
Date endDate = new Date(startDate.getTime() + 3600000);
DateTime start = new DateTime(startDate, TimeZone.getTimeZone("UTC"));
event.setStart(new EventDateTime().setDateTime(start));
DateTime end = new DateTime(endDate, TimeZone.getTimeZone("UTC"));
event.setEnd(new EventDateTime().setDateTime(end));

// Import the event into a calendar
Event importedEvent = service.events().calendarImport('primary', event).execute();

System.out.println(importedEvent.getId());

Python

Utilizza la libreria client Python.

event = {
  'summary': 'Appointment',
  'location': 'Somewhere',
  'organizer': {
    'email': 'organizerEmail',
    'displayName': 'organizerDisplayName'
  },
  'start': {
    'dateTime': '2011-06-03T10:00:00.000-07:00'
  },
  'end': {
    'dateTime': '2011-06-03T10:25:00.000-07:00'
  },
  'attendees': [
    {
      'email': 'attendeeEmail',
      'displayName': 'attendeeDisplayName',
    },
    # ...
  ],
  'iCalUID': 'originalUID'
}

imported_event = service.events().import_(calendarId='primary', body=event).execute()

print imported_event['id']

PHP

Utilizza la libreria client PHP.

$event = new Google_Service_Calendar_Event();
$event->setSummary('Appointment');
$event->setLocation('Somewhere');
$start = new Google_Service_Calendar_EventDateTime();
$start->setDateTime('2011-06-03T10:00:00.000-07:00');
$event->setStart($start);
$end = new Google_Service_Calendar_EventDateTime();
$end->setDateTime('2011-06-03T10:25:00.000-07:00');
$event->setEnd($end);
$attendee1 = new Google_Service_Calendar_EventAttendee();
$attendee1->setEmail('attendeeEmail');
// ...
$attendees = array($attendee1,
                   // ...,
                  );
$event->attendees = $attendees;
$organizer = new Google_Service_Calendar_EventOrganizer();
$organizer->setEmail('organizerEmail');
$organizer->setDisplayName('organizerDisplayName');
$event->setOrganizer($organizer);
$event->setICalUID('originalUID');
$importedEvent = $service->events->import('primary', $event);

echo $importedEvent->getId();

Ruby

Utilizza la libreria client di Ruby.

event = Google::Apis::CalendarV3::Event.new(
  summary: 'Appointment',
  location: 'Somewhere',
  organizer: {
    email: 'organizerEmail',
    display_name: 'organizerDisplayName'
  },
  start: {
    date_time: '2011-06-03T10:00:00.000-07:00'
  },
  end: {
    date_time: '2011-06-03T10:25:00.000-07:00'
  },
  attendees: [
    {
      email: 'attendeeEmail',
      display_name: 'attendeeDisplayName',
    },
    # ...
  ],
  i_cal_uid: 'originalUID'
)
result = client.import_event('primary', event)
print result.id

Prova.

Utilizza Explorer API di seguito per chiamare questo metodo sui dati in tempo reale e visualizzare la risposta.