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 percorso
calendarId string Identificatore di calendario. Per recuperare gli ID calendario, chiama il metodo calendarList.list. Se vuoi accedere al calendario principale dell'utente che ha eseguito l'accesso, usa "primary" parola chiave.
Parametri di query facoltativi
conferenceDataVersion integer Numero di versione dei dati della conferenza supportati dal client API. La versione 0 presuppone che i dati relativi alle conferenze non siano supportati e ignora i dati relativi alle conferenze 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 accettati sono compresi tra 0 e 1 (inclusi).
maxAttendees integer Il numero massimo di partecipanti da includere nella risposta. Se il numero di partecipanti supera 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 relative alla creazione del nuovo evento. Tieni presente che alcune email potrebbero essere 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 che non utilizzano Google Calendar.
  • "none": non vengono inviate notifiche.
supportsAttachments boolean Indica se il client API che esegue l'operazione supporta i collegamenti di 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, questa è l'ora di fine della prima istanza.
start nested object L'ora (inclusa) di inizio dell'evento. Per un evento ricorrente, questa è l'ora di inizio della prima istanza.
Proprietà facoltative
anyoneCanAddSelf boolean Indica se chiunque può invitarsi all'evento (deprecato). (Facoltativo) Il valore predefinito è False. accessibile in scrittura
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.

accessibile in scrittura
attendees[] list I partecipanti all'evento. Per ulteriori informazioni sulla programmazione di eventi con altri utenti di Google Calendar, consulta la guida Eventi con partecipanti. Gli account di servizio devono utilizzare la delega dell'autorità a livello di dominio per completare l'elenco dei partecipanti. accessibile in scrittura
attendees[].additionalGuests integer Numero di ospiti aggiuntivi. (Facoltativo) Il valore predefinito è 0. accessibile in scrittura
attendees[].comment string Commento della 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 conforme a RFC5322.

Obbligatorio quando si aggiunge un partecipante.

accessibile in scrittura
attendees[].optional boolean Se si tratta di un partecipante facoltativo. (Facoltativo) Il valore predefinito è False. accessibile in scrittura
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. (Facoltativo) Il valore predefinito è False. accessibile in scrittura
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.
accessibile in scrittura
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). (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. accessibile in scrittura
description string Descrizione dell'evento. Può contenere codice HTML. (Facoltativo) accessibile in scrittura
end.date date La data nel formato "aaaa-mm-gg", se si tratta di un evento che dura tutto il giorno. accessibile in scrittura
end.dateTime datetime L'ora, come valore combinato di data e ora (formattato secondo RFC3339). È richiesto uno scarto del fuso orario, a meno che non venga specificato esplicitamente in timeZone un fuso orario. accessibile in scrittura
end.timeZone string Il fuso orario in cui è specificata l'ora. (Formattato come nome di un database di fusi orari IANA, ad esempio "Europa/Zurigo"). 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. accessibile in scrittura
eventType string Tipo specifico di evento. Questo valore non può essere modificato dopo la creazione dell'evento. I valori possibili sono:
  • "default" - Un evento regolare o non ulteriormente specificato.
  • "outOfOffice" - Un evento fuori sede.
  • "focusTime" - Un evento di momento di concentrazione.
  • "workingLocation" - Un evento relativo a un luogo di lavoro.
  • "fromGmail" - Un evento da Gmail. Impossibile creare questo tipo di evento.
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 negli altri partecipanti calendari. accessibile in scrittura
focusTimeProperties nested object Dati sull'evento Momento di concentrazione. Utilizzato se eventType è focusTime. accessibile in scrittura
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 l'utente fa clic sull'evento.
accessibile in scrittura
gadget.height integer L'altezza del gadget in pixel. L'altezza deve essere un numero intero maggiore di 0. (Facoltativo) Deprecato. accessibile in scrittura
gadget.preferences object Preferenze. accessibile in scrittura
gadget.title string Il titolo del gadget. Deprecato. accessibile in scrittura
gadget.type string Il tipo di gadget. Deprecato. accessibile in scrittura
gadget.width integer La larghezza del gadget in pixel. La larghezza deve essere un numero intero maggiore di 0. (Facoltativo) Deprecato. accessibile in scrittura
guestsCanInviteOthers boolean Se partecipanti diversi dall'organizzatore possono invitare altre persone all'evento. (Facoltativo) Il valore predefinito è True. accessibile in scrittura
guestsCanModify boolean Se partecipanti diversi dall'organizzatore possono modificare l'evento. (Facoltativo) Il valore predefinito è False. accessibile in scrittura
guestsCanSeeOtherGuests boolean Se partecipanti diversi dall'organizzatore possono vedere chi sono i partecipanti all'evento. (Facoltativo) Il valore predefinito è True. accessibile in scrittura
id string Identificatore opaco dell'evento. Quando crei nuovi eventi singoli o ricorrenti, puoi specificarne gli ID. Gli ID forniti devono seguire queste regole:
  • I caratteri consentiti nell'ID sono quelli utilizzati nella codifica base32hex, ad esempio lettere minuscole a-v e cifre da 0 a 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
Data la natura del sistema distribuita a livello globale, non possiamo garantire che i conflitti di ID vengano rilevati 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 gli stessi icalUID.

accessibile in scrittura
location string La posizione geografica dell'evento come testo in formato libero. (Facoltativo) accessibile in scrittura
originalStartTime.date date La data nel formato "aaaa-mm-gg", se si tratta di un evento che dura tutto il giorno. accessibile in scrittura
originalStartTime.dateTime datetime L'ora, come valore combinato di data e ora (formattato secondo RFC3339). È richiesto uno scarto del fuso orario, a meno che non venga specificato esplicitamente in timeZone un fuso orario. accessibile in scrittura
originalStartTime.timeZone string Il fuso orario in cui è specificata l'ora. (Formattato come nome di un database di fusi orari IANA, ad esempio "Europa/Zurigo"). 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. accessibile in scrittura
outOfOfficeProperties nested object Dati sugli eventi fuori sede. Utilizzato 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 in questo campo non sono consentite le righe DTSTART e DTEND. le ore di inizio e di fine degli eventi sono specificate nei campi start e end. Questo campo è omesso per singoli eventi o istanze di eventi ricorrenti. accessibile in scrittura
reminders.overrides[] list Se l'evento non utilizza i promemoria predefiniti, vengono elencati i promemoria specifici per l'evento oppure, se non è impostato, non è impostato alcun promemoria per l'evento. Il numero massimo di promemoria di override è 5. accessibile in scrittura
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.

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

Obbligatorio quando aggiungi un promemoria.

accessibile in scrittura
reminders.useDefault boolean Indica se i promemoria predefiniti del calendario si applicano all'evento. accessibile in scrittura
sequence integer Numero di sequenza come per iCalendar. accessibile in scrittura
source.title string Titolo della fonte; 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. accessibile in scrittura
start.date date La data nel formato "aaaa-mm-gg", se si tratta di un evento che dura tutto il giorno. accessibile in scrittura
start.dateTime datetime L'ora, come valore combinato di data e ora (formattato secondo RFC3339). È richiesto uno scarto del fuso orario, a meno che non venga specificato esplicitamente in timeZone un fuso orario. accessibile in scrittura
start.timeZone string Il fuso orario in cui è specificata l'ora. (Formattato come nome di un database di fusi orari IANA, ad esempio "Europa/Zurigo"). 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. accessibile in scrittura
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 è stato annullato (eliminato). Il metodo list restituisce gli eventi annullati solo in caso di sincronizzazione incrementale (quando sono specificati syncToken o updatedMin) oppure se il flag showDeleted è impostato su true. Il metodo get li restituisce sempre.

    Lo 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 devono archiviare questi eventi per tutta la durata dell'evento ricorrente principale.

      Per le eccezioni annullate è garantito che i valori dei campi id, recurringEventId e originalStartTime siano compilati solo con la loro compilazione. Gli altri campi potrebbero essere vuoti.

    2. Tutti gli altri eventi annullati rappresentano eventi eliminati. I clienti dovrebbero rimuovere le copie sincronizzate localmente. Questi eventi annullati alla fine scompariranno, quindi non fare affidamento sulla loro disponibilità a tempo indeterminato.

      Per gli eventi eliminati è garantito che il campo id sia compilato solo.

    Nel calendario dell'organizzatore, gli eventi annullati continuano a mostrare i relativi dettagli (riepilogo, luogo e così via) in modo da poterli ripristinare (ripristinare l'eliminazione). 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 il suo organizzatore (ad esempio tramite l'operazione spostamento) e l'organizzatore originale non è nell'elenco dei partecipanti, lascerà un evento annullato in cui è garantito che venga compilato solo il campo id.

accessibile in scrittura
summary string Titolo dell'evento. accessibile in scrittura
transparency string Se l'evento blocca il tempo sul calendario. (Facoltativo) I valori possibili sono:
  • "opaque" - Valore predefinito. ma l'evento blocca il tempo sul calendario. Equivale a impostare Mostra come su Occupato nell'interfaccia utente di Calendar.
  • "transparent" - L'evento non blocca il tempo sul calendario. Equivale a impostare 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 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à.
accessibile in scrittura
workingLocationProperties nested object Dati sugli eventi relativi al luogo di lavoro. accessibile in scrittura
workingLocationProperties.customLocation object Se presente, specifica che l'utente sta lavorando da un luogo personalizzato. accessibile in scrittura
workingLocationProperties.customLocation.label string Un'etichetta aggiuntiva facoltativa per ulteriori informazioni. accessibile in scrittura
workingLocationProperties.homeOffice any value Se presente, specifica che l'utente lavora in casa. accessibile in scrittura
workingLocationProperties.officeLocation object Se presente, specifica che l'utente lavora da un ufficio. accessibile in scrittura
workingLocationProperties.officeLocation.buildingId string Un identificatore edificio facoltativo. Deve fare riferimento a un ID edificio nel database delle risorse dell'organizzazione. accessibile in scrittura
workingLocationProperties.officeLocation.deskId string Un identificatore scrivania facoltativo. accessibile in scrittura
workingLocationProperties.officeLocation.floorId string Un identificatore del piano facoltativo. accessibile in scrittura
workingLocationProperties.officeLocation.floorSectionId string Un identificatore facoltativo della sezione del piano. accessibile in scrittura
workingLocationProperties.officeLocation.label string Il nome dell'ufficio visualizzato nei client di Calendar per il web e per i dispositivi mobili. Ti consigliamo di fare riferimento al nome di un edificio nel database delle risorse dell'organizzazione. accessibile in scrittura
workingLocationProperties.type string Tipo di luogo di lavoro. I valori possibili sono:
  • "homeOffice" - L'utente lavora da casa.
  • "officeLocation" - L'utente lavora da un ufficio.
  • "customLocation" - L'utente lavora da una località personalizzata.
Tutti i dettagli vengono specificati in un campo secondario del nome specificato, ma questo campo potrebbe non essere presente se è vuoto. Eventuali altri campi vengono ignorati.

Obbligatorio quando aggiungi le proprietà dei luoghi di lavoro.

accessibile in scrittura

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.

// 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

Usa Explorer API in basso per chiamare questo metodo sui dati in tempo reale e visualizzare la risposta.