Events: insert

Tworzy wydarzenie. Wypróbuj lub zobacz przykład.

Żądanie

Żądanie HTTP

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

Parametry

Nazwa parametru Wartość Opis
Parametry ścieżki
calendarId string Identyfikator kalendarza. Aby pobrać identyfikatory kalendarzy, wywołaj metodę calendarList.list. Jeśli chcesz uzyskać dostęp do kalendarza głównego obecnie zalogowanego użytkownika, użyj narzędzia „primary” słowa kluczowego.
Opcjonalne parametry zapytania
conferenceDataVersion integer Numer wersji danych rozmów wideo obsługiwanych przez klienta interfejsu API. Wersja 0 zakłada brak obsługi danych rozmów wideo i ignoruje dane dotyczące konferencji w treści wydarzenia. Wersja 1 umożliwia obsługę kopiowania danych ConferenceData, jak również tworzenia nowych rozmów wideo przy użyciu pola createRequest of contactData. Wartość domyślna to 0. Akceptowane wartości to od 0 do 1 włącznie.
maxAttendees integer Maksymalna liczba uczestników do uwzględnienia w odpowiedzi. Jeśli uczestników jest więcej, zwracany jest tylko uczestnik. Opcjonalnie:
sendNotifications boolean Rola wycofana. Zamiast niej użyj zdarzenia sendUpdates.

Określ, czy chcesz wysyłać powiadomienia o utworzeniu nowego wydarzenia. Pamiętaj, że niektóre e-maile mogą nadal zostać wysłane, nawet jeśli ustawisz wartość false. Wartość domyślna to false.
sendUpdates string Określa, czy chcesz wysyłać powiadomienia o utworzeniu nowego zdarzenia. Pamiętaj, że niektóre e-maile mogą nadal zostać wysłane. Wartość domyślna to false.

Akceptowane wartości to:
  • all”: powiadomienia są wysyłane do wszystkich gości.
  • externalOnly”: powiadomienia są wysyłane tylko do gości, którzy nie korzystają z Kalendarza Google.
  • none”: nie zostaną wysłane żadne powiadomienia.
supportsAttachments boolean Określa, czy klient interfejsu API, który wykonuje operację, obsługuje załączniki zdarzeń. Opcjonalnie: Wartość domyślna to Fałsz.

Autoryzacja

To żądanie wymaga autoryzacji z co najmniej jednym z tych zakresów:

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

Więcej informacji znajdziesz na stronie dotyczącej uwierzytelniania i autoryzacji.

Treść żądania

W treści żądania podaj zasób Zdarzenia z tymi właściwościami:

Nazwa usługi Wartość Opis Uwagi
Właściwości wymagane
end nested object Godzina zakończenia wydarzenia (wyłączna). W przypadku wydarzenia cyklicznego jest to godzina zakończenia pierwszego wystąpienia.
start nested object Godzina rozpoczęcia wydarzenia (włącznie). W przypadku wydarzenia cyklicznego jest to godzina rozpoczęcia pierwszego wystąpienia.
Właściwości opcjonalne
anyoneCanAddSelf boolean Określa, czy każdy może zaprosić na wydarzenie siebie (funkcja wycofana). Opcjonalnie: Wartość domyślna to Fałsz. z możliwością zapisu
attachments[].fileUrl string adres URL załącznika.

Aby dodać załączniki z plikami z Dysku Google, użyj tego samego formatu co we właściwości alternateLink zasobu Files w interfejsie Drive API.

Wymagane przy dodawaniu załącznika.

z możliwością zapisu
attendees[] list Uczestnicy wydarzenia. Więcej informacji o planowaniu wydarzeń z innymi użytkownikami kalendarza znajdziesz w przewodniku Wydarzenia z uczestnikami. Aby zapełnić listę uczestników, konta usługi muszą korzystać z przekazywania uprawnień w całej domenie. z możliwością zapisu
attendees[].additionalGuests integer Liczba dodatkowych gości. Opcjonalnie: Wartość domyślna to 0. z możliwością zapisu
attendees[].comment string Komentarz uczestnika do odpowiedzi. Opcjonalnie: z możliwością zapisu
attendees[].displayName string Imię i nazwisko uczestnika (jeśli są dostępne). Opcjonalnie: z możliwością zapisu
attendees[].email string Adres e-mail uczestnika, jeśli jest dostępny. To pole musi być obecne podczas dodawania uczestnika. To musi być prawidłowy adres e-mail zgodnie z RFC5322.

Wymagane podczas dodawania uczestnika.

z możliwością zapisu
attendees[].optional boolean Określa, czy jest to opcjonalny uczestnik. Opcjonalnie: Wartość domyślna to Fałsz. z możliwością zapisu
attendees[].resource boolean Określa, czy uczestnik jest zasobem. Można to ustawić tylko wtedy, gdy uczestnik jest dodawany do wydarzenia po raz pierwszy. Kolejne modyfikacje są ignorowane. Opcjonalnie: Wartość domyślna to Fałsz. z możliwością zapisu
attendees[].responseStatus string Stan odpowiedzi uczestnika. Możliwe wartości:
  • needsAction” – Uczestnik nie odpowiedział na zaproszenie (zalecane w przypadku nowych wydarzeń).
  • declined” - Uczestnik odrzucił zaproszenie.
  • tentative” – Uczestnik wstępnie przyjął zaproszenie.
  • accepted” - Uczestnik zaakceptował zaproszenie.
z możliwością zapisu
colorId string Kolor wydarzenia. To identyfikator odnoszący się do wpisu w sekcji event definicji kolorów (patrz punkt końcowy kolorów). Opcjonalnie: z możliwością zapisu
conferenceData nested object informacje związane z konferencją, na przykład szczegóły rozmowy wideo w Google Meet; Aby utworzyć nowe szczegóły rozmowy wideo, użyj pola createRequest. Aby zachować zmiany, ustaw parametr żądania conferenceDataVersion na 1 w przypadku wszystkich żądań modyfikacji zdarzenia. z możliwością zapisu
description string Opis wydarzenia. Może zawierać kod HTML. Opcjonalnie: z możliwością zapisu
end.date date Data w formacie „rrrr-mm-dd”, jeśli jest to wydarzenie całodniowe. z możliwością zapisu
end.dateTime datetime Czas jako połączona wartość daty i godziny (sformatowana zgodnie z RFC3339). Przesunięcie strefy czasowej jest wymagane, chyba że w polu timeZone wyraźnie określisz strefę czasową. z możliwością zapisu
end.timeZone string Strefa czasowa, w której określono godzinę. (Sformatowana jako nazwa bazy danych strefy czasowej IANA, np. „Europa/Zurych”). W przypadku wydarzeń cyklicznych to pole jest wymagane i określa strefę czasową, do której powtarza się. W przypadku pojedynczych wydarzeń to pole jest opcjonalne i wskazuje niestandardową strefę czasową rozpoczęcia i zakończenia wydarzenia. z możliwością zapisu
eventType string Konkretny typ zdarzenia. Po utworzeniu wydarzenia nie można zmienić tej wartości. Możliwe wartości:
  • default” – Jest to zwykłe wydarzenie lub nieokreślone bardziej szczegółowo.
  • outOfOffice” - Wydarzenie poza biurem.
  • focusTime” - Wydarzenie typu czas skupienia.
  • workingLocation” – Zdarzenie dotyczące lokalizacji miejsca pracy.
  • fromGmail” – Wydarzenie z Gmaila. Nie można utworzyć tego typu wydarzenia.
z możliwością zapisu
extendedProperties.private object Właściwości, które są prywatne dla kopii wydarzenia widocznego w tym kalendarzu. z możliwością zapisu
extendedProperties.shared object Właściwości, które są współdzielone przez kopie wydarzenia dla innych uczestników kalendarze. z możliwością zapisu
focusTimeProperties nested object Dane zdarzenia Czas skupienia. Używana, jeśli eventType ma wartość focusTime. z możliwością zapisu
gadget.display string Tryb wyświetlania gadżetu. Rola wycofana. Możliwe wartości:
  • icon” - Gadżet jest wyświetlany obok tytułu wydarzenia w widoku kalendarza.
  • chip” - Gadżet wyświetla się po kliknięciu wydarzenia.
z możliwością zapisu
gadget.height integer Wysokość gadżetu w pikselach. Wysokość musi być liczbą całkowitą większą od 0. Opcjonalnie: Rola wycofana. z możliwością zapisu
gadget.preferences object Ustawienia. z możliwością zapisu
gadget.title string Tytuł gadżetu. Rola wycofana. z możliwością zapisu
gadget.type string Typ gadżetu. Rola wycofana. z możliwością zapisu
gadget.width integer Szerokość gadżetu w pikselach. Szerokość musi być liczbą całkowitą większą od 0. Opcjonalnie: Rola wycofana. z możliwością zapisu
guestsCanInviteOthers boolean Określa, czy uczestnicy inne niż organizator mogą zapraszać na wydarzenie inne osoby. Opcjonalnie: Wartość domyślna to Prawda. z możliwością zapisu
guestsCanModify boolean Określa, czy uczestnicy inni niż organizator mogą modyfikować wydarzenie. Opcjonalnie: Wartość domyślna to Fałsz. z możliwością zapisu
guestsCanSeeOtherGuests boolean Określa, czy uczestnicy inni niż organizator mogą zobaczyć, kim są uczestnicy wydarzenia. Opcjonalnie: Wartość domyślna to Prawda. z możliwością zapisu
id string Nieprzezroczysty identyfikator zdarzenia. Podczas tworzenia nowych wydarzeń jednorazowych lub cyklicznych możesz określić ich identyfikatory. Podane identyfikatory muszą być zgodne z tymi regułami:
  • znaki dozwolone w identyfikatorze to te używane w kodowaniu base32hex, tj. małe litery a-v i cyfry 0–9, patrz sekcja 3.1.2 w dokumencie RFC2938
  • identyfikator musi mieć od 5 do 1024 znaków
  • identyfikator musi być unikalny dla każdego kalendarza
Ze względu na globalny charakter systemu nie możemy zagwarantować, że kolizje identyfikatorów zostaną wykryte podczas tworzenia wydarzeń. Aby zminimalizować ryzyko kolizji, zalecamy użycie uznanego algorytmu UUID, takiego jak ten opisany w RFC4122.

Jeśli nie określisz identyfikatora, zostanie on wygenerowany automatycznie przez serwer.

Pamiętaj, że właściwości icalUID i id nie są identyczne i tylko jeden z nich należy podać podczas tworzenia zdarzenia. Jedyna różnica w ich semantyce polega na tym, że w przypadku wydarzeń cyklicznych wszystkie wystąpienia określonego wydarzenia mają różne właściwości id, ale wszystkie mają takie same elementy icalUID.

z możliwością zapisu
location string Lokalizacja geograficzna wydarzenia jako dowolny tekst. Opcjonalnie: z możliwością zapisu
originalStartTime.date date Data w formacie „rrrr-mm-dd”, jeśli jest to wydarzenie całodniowe. z możliwością zapisu
originalStartTime.dateTime datetime Czas jako połączona wartość daty i godziny (sformatowana zgodnie z RFC3339). Przesunięcie strefy czasowej jest wymagane, chyba że w polu timeZone wyraźnie określisz strefę czasową. z możliwością zapisu
originalStartTime.timeZone string Strefa czasowa, w której określono godzinę. (Sformatowana jako nazwa bazy danych strefy czasowej IANA, np. „Europa/Zurych”). W przypadku wydarzeń cyklicznych to pole jest wymagane i określa strefę czasową, do której powtarza się. W przypadku pojedynczych wydarzeń to pole jest opcjonalne i wskazuje niestandardową strefę czasową rozpoczęcia i zakończenia wydarzenia. z możliwością zapisu
outOfOfficeProperties nested object Dane dotyczące wydarzeń poza biurem. Używana, jeśli eventType ma wartość outOfOffice. z możliwością zapisu
recurrence[] list Lista wierszy RRULE, EXRULE, RDATE i EXDATE dla wydarzenia cyklicznego, zgodnie z opisem w RFC5545. Pamiętaj, że wiersze DTSTART i DTEND są w tym polu niedozwolone. czasy rozpoczęcia i zakończenia wydarzenia są podane w polach start i end. To pole jest pomijane w przypadku pojedynczych wydarzeń lub wystąpień wydarzeń cyklicznych. z możliwością zapisu
reminders.overrides[] list Jeśli dla wydarzenia nie są używane przypomnienia domyślne, zobaczysz listę przypomnień związanych z tym wydarzeniem lub, jeśli nie zostanie skonfigurowana, wskazuje, że dla tego wydarzenia nie są ustawione żadne przypomnienia. Maksymalna liczba przypomnień o zastąpieniu to 5. z możliwością zapisu
reminders.overrides[].method string Metoda użyta w tym przypomnieniu. Możliwe wartości:
  • email” - Przypomnienia są wysyłane e-mailem.
  • popup” – Przypomnienia są wysyłane przez wyskakujące okienko interfejsu.

Wymagane przy dodawaniu przypomnienia.

z możliwością zapisu
reminders.overrides[].minutes integer Liczba minut przed rozpoczęciem wydarzenia, kiedy powinno wyświetlić się przypomnienie. Prawidłowe wartości mieszczą się w zakresie od 0 do 40 320 (4 tygodnie w minutach).

Wymagane przy dodawaniu przypomnienia.

z możliwością zapisu
reminders.useDefault boolean Określa, czy domyślne przypomnienia kalendarza mają zastosowanie do wydarzenia. z możliwością zapisu
sequence integer Numer sekwencyjny zgodnie z iKalendarzem. z możliwością zapisu
source.title string Tytuł źródła; na przykład tytuł strony internetowej lub temat e-maila. z możliwością zapisu
source.url string Adres URL źródła wskazującego zasób. Schematem adresu URL musi być HTTP lub HTTPS. z możliwością zapisu
start.date date Data w formacie „rrrr-mm-dd”, jeśli jest to wydarzenie całodniowe. z możliwością zapisu
start.dateTime datetime Czas jako połączona wartość daty i godziny (sformatowana zgodnie z RFC3339). Przesunięcie strefy czasowej jest wymagane, chyba że w polu timeZone wyraźnie określisz strefę czasową. z możliwością zapisu
start.timeZone string Strefa czasowa, w której określono godzinę. (Sformatowana jako nazwa bazy danych strefy czasowej IANA, np. „Europa/Zurych”). W przypadku wydarzeń cyklicznych to pole jest wymagane i określa strefę czasową, do której powtarza się. W przypadku pojedynczych wydarzeń to pole jest opcjonalne i wskazuje niestandardową strefę czasową rozpoczęcia i zakończenia wydarzenia. z możliwością zapisu
status string Stan wydarzenia. Opcjonalnie: Możliwe wartości:
  • confirmed” – wydarzenie zostało potwierdzone. Jest to stan domyślny.
  • tentative” – Wydarzenie jest wstępnie potwierdzone.
  • cancelled” – Wydarzenie zostało anulowane (usunięte). Metoda list zwraca anulowane zdarzenia tylko przy synchronizacji przyrostowej (gdy określono syncToken lub updatedMin) lub jeśli flaga showDeleted jest ustawiona na true. Metoda get zawsze je zwraca.

    Stan anulowanego zdarzenia to 2 różne stany w zależności od jego typu:

    1. Anulowane wyjątki nieanulowanego wydarzenia cyklicznego wskazują, że ta instancja nie powinna już być prezentowana użytkownikowi. Klienci powinni przechowywać te zdarzenia przez cały okres trwania nadrzędnego wydarzenia cyklicznego.

      Gwarantowane, że anulowane wyjątki będą miały wypełnione tylko wartości w polach id, recurringEventId i originalStartTime. Pozostałe pola mogą być puste.

    2. Wszystkie inne anulowane wydarzenia odnoszą się do usuniętych wydarzeń. Klienci powinni usunąć swoje zsynchronizowane lokalnie kopie. Takie anulowane wydarzenia wkrótce znikną, więc nie czekaj, aż będą dostępne bezterminowo.

      Gwarantujemy, że w przypadku usuniętych wydarzeń tylko pole id będzie wypełnione.

    Anulowane wydarzenia w kalendarzu organizatora nadal zawierają szczegóły wydarzenia (podsumowanie, lokalizację itp.), aby można je było przywrócić (przywrócić). Szczegółowe informacje są też dostępne w przypadku wydarzeń, na które użytkownik został zaproszony i który został usunięty ręcznie. Jednak przyrostowe żądania synchronizacji z wartością fałsz (showDeleted) nie zwracają tych informacji.

    Jeśli organizator zmieni organizatora (na przykład w wyniku operacji move) i pierwotnego organizatora nie ma na liście uczestników, wydarzenie pozostawi anulowane wydarzenie, w którym tylko pole id zostanie wypełnione.

z możliwością zapisu
summary string Nazwa wydarzenia, z możliwością zapisu
transparency string Określa, czy wydarzenie ma blokować czas w kalendarzu. Opcjonalnie: Możliwe wartości:
  • opaque” – wartość domyślna. Wydarzenie nie zablokuje czasu w kalendarzu. Odpowiada to ustawieniu Pokaż mój stan jako na Zajęty w interfejsie Kalendarza.
  • transparent” – Wydarzenie nie blokuje czasu w kalendarzu. Jest to odpowiednik ustawienia Pokaż mój stan jako na Dostępny w interfejsie Kalendarza.
z możliwością zapisu
visibility string Widoczność wydarzenia. Opcjonalnie: Możliwe wartości:
  • default” – Korzysta z domyślnej widoczności wydarzeń w kalendarzu. jest to wartość domyślna
  • public” - Wydarzenie jest publiczne, a jego szczegóły są widoczne dla wszystkich czytelników kalendarza.
  • private” – Wydarzenie jest prywatne i tylko jego uczestnicy mogą wyświetlać jego szczegóły.
  • confidential” – Wydarzenie jest prywatne. Ta wartość jest podawana ze względu na zgodność.
z możliwością zapisu
workingLocationProperties nested object Dane zdarzenia w lokalizacji miejsca pracy. z możliwością zapisu
workingLocationProperties.customLocation object Jeśli ta opcja jest dostępna, oznacza, że użytkownik pracuje w lokalizacji niestandardowej. z możliwością zapisu
workingLocationProperties.customLocation.label string Opcjonalna dodatkowa etykieta z dodatkowymi informacjami. z możliwością zapisu
workingLocationProperties.homeOffice any value Jeśli ten parametr jest dostępny, oznacza, że użytkownik pracuje w domu. z możliwością zapisu
workingLocationProperties.officeLocation object Jeśli ten parametr jest dostępny, oznacza, że użytkownik pracuje w biurze. z możliwością zapisu
workingLocationProperties.officeLocation.buildingId string Opcjonalny identyfikator budynku. Powinien odwoływać się do identyfikatora budynku w bazie danych zasobów organizacji. z możliwością zapisu
workingLocationProperties.officeLocation.deskId string Opcjonalny identyfikator biurka. z możliwością zapisu
workingLocationProperties.officeLocation.floorId string Opcjonalny identyfikator piętra. z możliwością zapisu
workingLocationProperties.officeLocation.floorSectionId string Opcjonalny identyfikator obszaru piętra. z możliwością zapisu
workingLocationProperties.officeLocation.label string Nazwa biura wyświetlana w klientach internetowych i mobilnych. Zalecamy odwołanie do nazwy budynku w bazie danych zasobów organizacji. z możliwością zapisu
workingLocationProperties.type string Typ lokalizacji miejsca pracy. Możliwe wartości:
  • homeOffice” – Użytkownik pracuje w domu.
  • officeLocation” – Użytkownik pracuje w biurze.
  • customLocation” – Użytkownik pracuje w lokalizacji niestandardowej.
Wszystkie szczegóły są określone w polu podrzędnym o podanej nazwie, ale to pole może nie być puste, jeśli jest puste. Pozostałe pola są ignorowane.

Wymagane przy dodawaniu właściwości lokalizacji miejsca pracy.

z możliwością zapisu

Odpowiedź

Jeśli operacja się uda, metoda zwróci zasób Zdarzenia w treści odpowiedzi.

Przykłady

Uwaga: dostępne dla tej metody przykłady kodu nie odzwierciedlają wszystkich obsługiwanych języków programowania. Listę obsługiwanych języków znajdziesz na stronie z bibliotekami klienta.

Java

Używa biblioteki klienta 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

Używa biblioteki klienta w Pythonie.

# 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

Używa biblioteki klienta 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

Używa biblioteki klienta 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

Używa biblioteki klienta.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);

Przeczytaj

Używa biblioteki klienta 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

Używa biblioteki klienta 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

Używa biblioteki klienta 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);
});

Wypróbuj

Użyj poniższego eksploratora interfejsów API, aby wywołać tę metodę na bieżących danych i wyświetlić odpowiedź.