Events: insert

Crea un evento. Prova subito o guarda un esempio.

Richiesta

Richiesta HTTP

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

Parametri

Nome del parametro Valore Descrizione
Parametri del percorso
calendarId string Identificatore del calendario. Per recuperare gli ID calendario, chiama il metodo calendarList.list. Se vuoi accedere al calendario principale dell'utente che ha eseguito l'accesso, utilizza la parola chiave "primary".
Parametri di query facoltativi
conferenceDataVersion integer Numero di versione dei dati della conferenza supportati dal client API. La versione 0 non presuppone il supporto dei dati della conferenza e li ignora nel corpo dell'evento. La versione 1 consente il supporto per la copia di ConferenceData e per la creazione di nuove conferenze utilizzando il campo createRequest di ConferenceData. Il valore predefinito è 0. I valori accettabili sono compresi tra 0 e 1.
maxAttendees integer Il numero massimo di partecipanti da includere nella risposta. Se il numero di partecipanti è superiore a quello specificato, viene restituito solo il partecipante. (Facoltativo)
sendNotifications boolean Deprecato. Utilizza invece sendUpdates.

Indica se inviare notifiche sulla creazione del nuovo evento. Tieni presente che alcune email potrebbero comunque essere inviate anche se imposti il valore su false. Il valore predefinito è false.
sendUpdates string Indica se inviare notifiche sulla creazione del nuovo evento. Tieni presente che alcune email potrebbero essere state comunque inviate. Il valore predefinito è false.

I valori accettati sono:
  • "all": le notifiche vengono inviate a tutti gli invitati.
  • "externalOnly": le notifiche vengono inviate solo agli invitati non Google Calendar.
  • "none": non vengono inviate notifiche.
supportsAttachments boolean Indica se il client API che esegue l'operazione supporta gli allegati degli eventi. (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 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, si tratta dell'ora di fine della prima istanza.
start nested object L'ora di inizio (inclusa) dell'evento. Per un evento ricorrente, si tratta dell'ora di inizio della prima istanza.
Proprietà facoltative
anyoneCanAddSelf boolean Indica se chiunque può autoinvitarsi all'evento (opzione non più supportata). (Facoltativo) Il valore predefinito è False. scrivibile
attachments[].fileUrl string Link all'URL dell'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 saperne di più sulla pianificazione di eventi con altri utenti del calendario, consulta la guida Eventi con invitati. Gli account di servizio devono utilizzare la delegazione dell'autorità a livello di dominio per compilare l'elenco dei partecipanti. scrivibile
attendees[].additionalGuests integer Numero di ospiti aggiuntivi. (Facoltativo) Il valore predefinito è 0. accessibile in scrittura
attendees[].comment string Il commento alla risposta del partecipante. (Facoltativo) accessibile in scrittura
attendees[].displayName string Il nome del partecipante, se disponibile. (Facoltativo) accessibile in scrittura
attendees[].email string L'indirizzo email del partecipante, se disponibile. Questo campo deve essere presente quando aggiungi un partecipante. Deve essere un indirizzo email valido come da RFC5322.

Obbligatorio quando si aggiunge un partecipante.

scrivibile
attendees[].optional boolean Se si tratta di un partecipante facoltativo. (Facoltativo) Il valore predefinito è False. accessibile in scrittura
attendees[].resource boolean Indica 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. (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
birthdayProperties nested object Dati sulla data di nascita o su eventi speciali. Utilizzato se eventType è "birthday". Immutabile. scrivibile
birthdayProperties.type string Tipo di compleanno o evento speciale. I valori possibili sono:
  • "anniversary": un anniversario diverso dal compleanno. Ha sempre un contact.
  • "birthday": un evento di compleanno. Questo è il valore predefinito.
  • "custom": una data speciale la cui etichetta è specificata ulteriormente nel campo customTypeName. Ha sempre un contact.
  • "other": una data speciale che non rientra nelle altre categorie e non ha un'etichetta personalizzata. Ha sempre un contact.
  • "self": data di nascita del proprietario del calendario. Impossibile avere un contact.
L'API Calendar supporta solo la creazione di eventi di tipo "birthday". Il tipo non può essere modificato dopo la creazione dell'evento.
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 colors). (Facoltativo) accessibile in scrittura
conferenceData nested object Le informazioni relative 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. Può contenere HTML. (Facoltativo) scrivibile
end.date date La data, nel formato "aaaa-mm-gg", se si tratta di un evento che dura tutto il giorno. scrivibile
end.dateTime datetime L'ora, come valore combinato di data e ora (formattato in base a RFC3339). È necessario un offset del fuso orario, a meno che non sia specificato esplicitamente un fuso orario in timeZone. scrivibile
end.timeZone string Il fuso orario in cui è specificata l'ora. (Formattato come nome del database IANA Time Zone, ad esempio "Europe/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/la fine dell'evento. scrivibile
eventType string Tipo specifico di evento. Questo valore non può essere modificato dopo la creazione dell'evento. I valori possibili sono:
  • "birthday": un evento speciale che dura tutto il giorno e si ripete ogni anno.
  • "default": un evento regolare o non specificato ulteriormente.
  • "focusTime" - Un evento di momento di concentrazione.
  • "fromGmail": un evento di Gmail. Impossibile creare questo tipo di evento.
  • "outOfOffice" - Un evento fuori sede.
  • "workingLocation": un evento relativo alla sede di lavoro.
accessibile in scrittura
extendedProperties.private object Proprietà private per la copia dell'evento visualizzato in questo calendario. accessibile in scrittura
extendedProperties.shared object Proprietà condivise tra le copie dell'evento nei calendari di altri partecipanti. scrivibile
focusTimeProperties nested object Dati dell'evento 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 visualizzato accanto al titolo dell'evento nella visualizzazione del 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. (Facoltativo) Deprecato. scrivibile
gadget.preferences object Preferenze. accessibile in scrittura
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. (Facoltativo) Deprecato. scrivibile
guestsCanInviteOthers boolean Indica se i partecipanti diversi dall'organizzatore possono invitare altre persone all'evento. (Facoltativo) Il valore predefinito è True. scrivibile
guestsCanModify boolean Indica se i partecipanti diversi dall'organizzatore possono modificare l'evento. (Facoltativo) Il valore predefinito è False. accessibile in scrittura
guestsCanSeeOtherGuests boolean Indica se i partecipanti diversi dall'organizzatore possono vedere chi sono i partecipanti all'evento. (Facoltativo) Il valore predefinito è True. scrivibile
id string Identificatore opaco dell'evento. Quando crei nuovi eventi singoli o ricorrenti, puoi specificarne gli ID. Gli ID forniti devono rispettare queste regole:
  • I caratteri consentiti nell'ID sono quelli utilizzati nella codifica base32hex, ovvero lettere minuscole a-v e cifre 0-9, consulta la sezione 3.1.2 in RFC2938
  • la lunghezza dell'ID deve essere compresa tra 5 e 1024 caratteri
  • L'ID deve essere univoco per ogni calendario
A causa della natura distribuita a livello globale del sistema, non possiamo garantire che le collisioni di ID vengano rilevate al momento della creazione dell'evento. Per ridurre al minimo il rischio di collisioni, ti consigliamo di utilizzare un algoritmo UUID consolidato, come quello descritto in RFC4122.

Se non specifichi un ID, questo verrà generato automaticamente dal server.

Tieni presente che icalUID e id non sono identici e solo uno 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 tutti gli stessi icalUID.

scrivibile
location string Posizione geografica dell'evento sotto forma di testo libero. (Facoltativo) scrivibile
originalStartTime.date date La data, nel formato "aaaa-mm-gg", se si tratta di un evento che dura tutto il giorno. scrivibile
originalStartTime.dateTime datetime L'ora, come valore combinato di data e ora (formattato in base a RFC3339). È necessario un offset del fuso orario, a meno che non sia specificato esplicitamente un fuso orario in timeZone. scrivibile
originalStartTime.timeZone string Il fuso orario in cui è specificata l'ora. (Formattato come nome del database IANA Time Zone, ad esempio "Europe/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/la fine dell'evento. scrivibile
outOfOfficeProperties nested object Dati sugli eventi fuori sede. Da utilizzare se eventType è outOfOffice. accessibile in scrittura
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 dell'evento sono specificate nei campi start e end. Questo campo viene omesso per i singoli eventi o le istanze di eventi ricorrenti. scrivibile
reminders.overrides[] list Se l'evento non utilizza i promemoria predefiniti, vengono elencati i promemoria specifici per l'evento oppure, se non sono impostati, viene indicato che non sono impostati promemoria per questo evento. Il numero massimo di promemoria di override è 5. scrivibile
reminders.overrides[].method string Il metodo utilizzato da questo 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 deve 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 per iCalendar. scrivibile
source.title string Titolo della sorgente, ad esempio il titolo di una pagina web o l'oggetto di un'email. accessibile in scrittura
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 si tratta di un evento che dura tutto il giorno. scrivibile
start.dateTime datetime L'ora come valore data/ora combinato (formattato in base allo standard RFC3339). La differenza del fuso orario è obbligatoria, a meno che non venga specificato esplicitamente in timeZone un fuso orario. scrivibile
start.timeZone string Il fuso orario in cui è specificata l'ora. (Formattato come nome del database IANA Time Zone, ad esempio "Europe/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/la fine dell'evento. scrivibile
status string Stato dell'evento. (Facoltativo) I valori possibili sono:
  • "confirmed": l'evento è confermato. Questo è lo stato predefinito.
  • "tentative": l'evento è provvisoriamente confermato.
  • "cancelled": l'evento è annullato (eliminato). Il metodo list restituisce gli eventi annullati solo in caso di sincronizzazione incrementale (quando vengono specificati syncToken o updatedMin) oppure 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 deve più essere presentata all'utente. I client dovrebbero archiviare questi eventi per tutta la durata dell'evento ricorrente principale.

      Per le eccezioni annullate è garantito solo che i campi id, recurringEventId e originalStartTime siano compilati. 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 alla fine scompariranno, quindi non dare per scontato che saranno disponibili a tempo indeterminato.

      Per gli eventi eliminati è garantito solo il completamento del campo id.

    Nel calendario dell'organizzatore, gli eventi annullati continuano a mostrare i dettagli (riepilogo, luogo e così via) in modo che possano essere ripristinati (annullati). Analogamente, gli eventi a cui l'utente è stato invitato e che ha rimosso manualmente continuano a fornire dettagli. Tuttavia, le richieste di sincronizzazione incrementale con showDeleted impostato su false non restituiranno questi dettagli.

    Se un evento cambia organizzatore (ad esempio tramite l'operazione sposta) e l'organizzatore originale non è presente nell'elenco dei partecipanti, verrà lasciato un evento annullato in cui è garantito che verrà compilato solo il campo id.

accessibile in scrittura
summary string Titolo dell'evento. accessibile in scrittura
transparency string Indica se l'evento blocca un periodo di tempo nel calendario. (Facoltativo) I valori possibili sono:
  • "opaque": valore predefinito. ma l'evento blocca il tempo sul calendario. Ciò equivale a impostare Mostrami come su Occupato nell'interfaccia utente di Calendar.
  • "transparent": l'evento non blocca l'orario nel calendario. Questo è equivalente all'impostazione di Mostrami come su Disponibile nell'interfaccia utente di Calendar.
accessibile in scrittura
visibility string Visibilità dell'evento. (Facoltativo) I valori possibili sono:
  • "default": utilizza la visibilità predefinita per gli eventi nel calendario. Questo è il valore predefinito.
  • "public": l'evento è pubblico e i 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à.
accessibile in scrittura
workingLocationProperties nested object Dati sugli eventi relativi al luogo di lavoro. scrivibile
workingLocationProperties.customLocation object Se presente, specifica che l'utente sta lavorando da una posizione personalizzata. scrivibile
workingLocationProperties.customLocation.label string Un'etichetta aggiuntiva facoltativa per ulteriori informazioni. scrivibile
workingLocationProperties.homeOffice any value Se presente, specifica che l'utente lavora da casa. scrivibile
workingLocationProperties.officeLocation object Se presente, specifica che l'utente lavora da un ufficio. scrivibile
workingLocationProperties.officeLocation.buildingId string Un identificatore dell'edificio facoltativo. Deve fare riferimento a un ID edificio nel database delle risorse dell'organizzazione. accessibile in scrittura
workingLocationProperties.officeLocation.deskId string Un identificatore facoltativo della scrivania. scrivibile
workingLocationProperties.officeLocation.floorId string Un identificatore del piano facoltativo. accessibile in scrittura
workingLocationProperties.officeLocation.floorSectionId string Un identificatore facoltativo della sezione del piano. scrivibile
workingLocationProperties.officeLocation.label string Il nome dell'ufficio visualizzato nei client web e mobile di Calendar. Ti consigliamo di fare riferimento al nome di un edificio nel database delle risorse dell'organizzazione. scrivibile
workingLocationProperties.type string Tipo di luogo di lavoro. I valori possibili sono:
  • "homeOffice": l'utente lavora a casa.
  • "officeLocation": l'utente lavora da un ufficio.
  • "customLocation" - L'utente lavora da una località personalizzata.
Eventuali dettagli vengono specificati in un sottocampo del nome specificato, ma questo campo potrebbe non essere presente se è vuoto. Eventuali altri campi vengono ignorati.

Obbligatorio quando si aggiungono proprietà relative al luogo di lavoro.

scrivibile

Risposta

In caso di esito positivo, questo metodo restituisce una risorsa Events 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.

// Refer to the Java quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/java
// Change the scope to CalendarScopes.CALENDAR and delete any stored
// credentials.

Event event = new Event()
    .setSummary("Google I/O 2015")
    .setLocation("800 Howard St., San Francisco, CA 94103")
    .setDescription("A chance to hear more about Google's developer products.");

DateTime startDateTime = new DateTime("2015-05-28T09:00:00-07:00");
EventDateTime start = new EventDateTime()
    .setDateTime(startDateTime)
    .setTimeZone("America/Los_Angeles");
event.setStart(start);

DateTime endDateTime = new DateTime("2015-05-28T17:00:00-07:00");
EventDateTime end = new EventDateTime()
    .setDateTime(endDateTime)
    .setTimeZone("America/Los_Angeles");
event.setEnd(end);

String[] recurrence = new String[] {"RRULE:FREQ=DAILY;COUNT=2"};
event.setRecurrence(Arrays.asList(recurrence));

EventAttendee[] attendees = new EventAttendee[] {
    new EventAttendee().setEmail("lpage@example.com"),
    new EventAttendee().setEmail("sbrin@example.com"),
};
event.setAttendees(Arrays.asList(attendees));

EventReminder[] reminderOverrides = new EventReminder[] {
    new EventReminder().setMethod("email").setMinutes(24 * 60),
    new EventReminder().setMethod("popup").setMinutes(10),
};
Event.Reminders reminders = new Event.Reminders()
    .setUseDefault(false)
    .setOverrides(Arrays.asList(reminderOverrides));
event.setReminders(reminders);

String calendarId = "primary";
event = service.events().insert(calendarId, event).execute();
System.out.printf("Event created: %s\n", event.getHtmlLink());

Python

Utilizza la libreria client Python.

# Refer to the Python quickstart on how to setup the environment:
# https://developers.google.com/calendar/quickstart/python
# Change the scope to 'https://www.googleapis.com/auth/calendar' and delete any
# stored credentials.

event = {
  'summary': 'Google I/O 2015',
  'location': '800 Howard St., San Francisco, CA 94103',
  'description': 'A chance to hear more about Google\'s developer products.',
  'start': {
    'dateTime': '2015-05-28T09:00:00-07:00',
    'timeZone': 'America/Los_Angeles',
  },
  'end': {
    'dateTime': '2015-05-28T17:00:00-07:00',
    'timeZone': 'America/Los_Angeles',
  },
  'recurrence': [
    'RRULE:FREQ=DAILY;COUNT=2'
  ],
  'attendees': [
    {'email': 'lpage@example.com'},
    {'email': 'sbrin@example.com'},
  ],
  'reminders': {
    'useDefault': False,
    'overrides': [
      {'method': 'email', 'minutes': 24 * 60},
      {'method': 'popup', 'minutes': 10},
    ],
  },
}

event = service.events().insert(calendarId='primary', body=event).execute()
print 'Event created: %s' % (event.get('htmlLink'))

PHP

Utilizza la libreria client PHP.

// Refer to the PHP quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/php
// Change the scope to Google_Service_Calendar::CALENDAR and delete any stored
// credentials.

$event = new Google_Service_Calendar_Event(array(
  'summary' => 'Google I/O 2015',
  'location' => '800 Howard St., San Francisco, CA 94103',
  'description' => 'A chance to hear more about Google\'s developer products.',
  'start' => array(
    'dateTime' => '2015-05-28T09:00:00-07:00',
    'timeZone' => 'America/Los_Angeles',
  ),
  'end' => array(
    'dateTime' => '2015-05-28T17:00:00-07:00',
    'timeZone' => 'America/Los_Angeles',
  ),
  'recurrence' => array(
    'RRULE:FREQ=DAILY;COUNT=2'
  ),
  'attendees' => array(
    array('email' => 'lpage@example.com'),
    array('email' => 'sbrin@example.com'),
  ),
  'reminders' => array(
    'useDefault' => FALSE,
    'overrides' => array(
      array('method' => 'email', 'minutes' => 24 * 60),
      array('method' => 'popup', 'minutes' => 10),
    ),
  ),
));

$calendarId = 'primary';
$event = $service->events->insert($calendarId, $event);
printf('Event created: %s\n', $event->htmlLink);

Ruby

Utilizza la libreria client Ruby.

event = Google::Apis::CalendarV3::Event.new(
  summary: 'Google I/O 2015',
  location: '800 Howard St., San Francisco, CA 94103',
  description: 'A chance to hear more about Google\'s developer products.',
  start: Google::Apis::CalendarV3::EventDateTime.new(
    date_time: '2015-05-28T09:00:00-07:00',
    time_zone: 'America/Los_Angeles'
  ),
  end: Google::Apis::CalendarV3::EventDateTime.new(
    date_time: '2015-05-28T17:00:00-07:00',
    time_zone: 'America/Los_Angeles'
  ),
  recurrence: [
    'RRULE:FREQ=DAILY;COUNT=2'
  ],
  attendees: [
    Google::Apis::CalendarV3::EventAttendee.new(
      email: 'lpage@example.com'
    ),
    Google::Apis::CalendarV3::EventAttendee.new(
      email: 'sbrin@example.com'
    )
  ],
  reminders: Google::Apis::CalendarV3::Event::Reminders.new(
    use_default: false,
    overrides: [
      Google::Apis::CalendarV3::EventReminder.new(
        reminder_method: 'email',
        minutes: 24 * 60
      ),
      Google::Apis::CalendarV3::EventReminder.new(
        reminder_method: 'popup',
        minutes: 10
      )
    ]
  )
)

result = client.insert_event('primary', event)
puts "Event created: #{result.html_link}"

.NET

Utilizza la libreria client.NET.

// Refer to the .NET quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/dotnet
// Change the scope to CalendarService.Scope.Calendar and delete any stored
// credentials.

Event newEvent = new Event()
{
    Summary = "Google I/O 2015",
    Location = "800 Howard St., San Francisco, CA 94103",
    Description = "A chance to hear more about Google's developer products.",
    Start = new EventDateTime()
    {
        DateTime = DateTime.Parse("2015-05-28T09:00:00-07:00"),
        TimeZone = "America/Los_Angeles",
    },
    End = new EventDateTime()
    {
        DateTime = DateTime.Parse("2015-05-28T17:00:00-07:00"),
        TimeZone = "America/Los_Angeles",
    },
    Recurrence = new String[] { "RRULE:FREQ=DAILY;COUNT=2" },
    Attendees = new EventAttendee[] {
        new EventAttendee() { Email = "lpage@example.com" },
        new EventAttendee() { Email = "sbrin@example.com" },
    },
    Reminders = new Event.RemindersData()
    {
        UseDefault = false,
        Overrides = new EventReminder[] {
            new EventReminder() { Method = "email", Minutes = 24 * 60 },
            new EventReminder() { Method = "sms", Minutes = 10 },
        }
    }
};

String calendarId = "primary";
EventsResource.InsertRequest request = service.Events.Insert(newEvent, calendarId);
Event createdEvent = request.Execute();
Console.WriteLine("Event created: {0}", createdEvent.HtmlLink);

Vai

Utilizza la libreria client Go.

// Refer to the Go quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/go
// Change the scope to calendar.CalendarScope and delete any stored credentials.

event := &calendar.Event{
  Summary: "Google I/O 2015",
  Location: "800 Howard St., San Francisco, CA 94103",
  Description: "A chance to hear more about Google's developer products.",
  Start: &calendar.EventDateTime{
    DateTime: "2015-05-28T09:00:00-07:00",
    TimeZone: "America/Los_Angeles",
  },
  End: &calendar.EventDateTime{
    DateTime: "2015-05-28T17:00:00-07:00",
    TimeZone: "America/Los_Angeles",
  },
  Recurrence: []string{"RRULE:FREQ=DAILY;COUNT=2"},
  Attendees: []*calendar.EventAttendee{
    &calendar.EventAttendee{Email:"lpage@example.com"},
    &calendar.EventAttendee{Email:"sbrin@example.com"},
  },
}

calendarId := "primary"
event, err = srv.Events.Insert(calendarId, event).Do()
if err != nil {
  log.Fatalf("Unable to create event. %v\n", err)
}
fmt.Printf("Event created: %s\n", event.HtmlLink)

JavaScript

Utilizza la libreria client JavaScript.

// Refer to the JavaScript quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/js
// Change the scope to 'https://www.googleapis.com/auth/calendar' and delete any
// stored credentials.

var event = {
  'summary': 'Google I/O 2015',
  'location': '800 Howard St., San Francisco, CA 94103',
  'description': 'A chance to hear more about Google\'s developer products.',
  'start': {
    'dateTime': '2015-05-28T09:00:00-07:00',
    'timeZone': 'America/Los_Angeles'
  },
  'end': {
    'dateTime': '2015-05-28T17:00:00-07:00',
    'timeZone': 'America/Los_Angeles'
  },
  'recurrence': [
    'RRULE:FREQ=DAILY;COUNT=2'
  ],
  'attendees': [
    {'email': 'lpage@example.com'},
    {'email': 'sbrin@example.com'}
  ],
  'reminders': {
    'useDefault': false,
    'overrides': [
      {'method': 'email', 'minutes': 24 * 60},
      {'method': 'popup', 'minutes': 10}
    ]
  }
};

var request = gapi.client.calendar.events.insert({
  'calendarId': 'primary',
  'resource': event
});

request.execute(function(event) {
  appendPre('Event created: ' + event.htmlLink);
});

Node.js

Utilizza la libreria client Node.js.

// Refer to the Node.js quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/node
// Change the scope to 'https://www.googleapis.com/auth/calendar' and delete any
// stored credentials.

var event = {
  'summary': 'Google I/O 2015',
  'location': '800 Howard St., San Francisco, CA 94103',
  'description': 'A chance to hear more about Google\'s developer products.',
  'start': {
    'dateTime': '2015-05-28T09:00:00-07:00',
    'timeZone': 'America/Los_Angeles',
  },
  'end': {
    'dateTime': '2015-05-28T17:00:00-07:00',
    'timeZone': 'America/Los_Angeles',
  },
  'recurrence': [
    'RRULE:FREQ=DAILY;COUNT=2'
  ],
  'attendees': [
    {'email': 'lpage@example.com'},
    {'email': 'sbrin@example.com'},
  ],
  'reminders': {
    'useDefault': false,
    'overrides': [
      {'method': 'email', 'minutes': 24 * 60},
      {'method': 'popup', 'minutes': 10},
    ],
  },
};

calendar.events.insert({
  auth: auth,
  calendarId: 'primary',
  resource: event,
}, function(err, event) {
  if (err) {
    console.log('There was an error contacting the Calendar service: ' + err);
    return;
  }
  console.log('Event created: %s', event.htmlLink);
});

Prova

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