Events: import

Importuje wydarzenie. Ta operacja służy do dodawania do kalendarza prywatnej kopii istniejącego wydarzenia. Można importować tylko zdarzenia o wartości eventType default.

Wycofane działanie: jeśli importujesz zdarzenie inne niż default, jego typ zostanie zmieniony na default, a wszystkie właściwości specyficzne dla typu zdarzenia zostaną usunięte.

Wypróbuj teraz lub zobacz przykład.

Żądanie

Żądanie HTTP

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

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 głównego kalendarza aktualnie zalogowanego użytkownika, użyj słowa kluczowego „primary”.
Parametry opcjonalne zapytania
conferenceDataVersion integer Numer wersji danych konferencji obsługiwanych przez klienta interfejsu API. Wersja 0 zakłada brak obsługi danych konferencji i ignoruje dane konferencji w treści wydarzenia. Wersja 1 umożliwia kopiowanie danych konferencji oraz tworzenie nowych konferencji za pomocą pola createRequest w danych konferencji. Wartość domyślna to 0. Akceptowane wartości to od 0 do 1 (włącznie).
supportsAttachments boolean Określa, czy klient interfejsu API wykonujący operację obsługuje załączniki zdarzeń. Opcjonalnie: Wartość domyślna to False (fałsz).

Autoryzacja

Ta prośba wymaga autoryzacji z co najmniej jednym z tych zakresów:

Zakres
https://www.googleapis.com/auth/calendar
https://www.googleapis.com/auth/calendar.events
https://www.googleapis.com/auth/calendar.app.created
https://www.googleapis.com/auth/calendar.events.owned

Więcej informacji znajdziesz na stronie Uwierzytelnianie i autoryzacja.

Treść żądania

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

Nazwa usługi Wartość Opis Uwagi
Właściwości wymagane
end nested object Czas zakończenia wydarzenia (wyłącznie). W przypadku wydarzenia cyklicznego jest to czas zakończenia pierwszego wystąpienia.
iCalUID string Unikalny identyfikator zdarzenia zdefiniowany w dokumencie RFC5545. Służy do jednoznacznego identyfikowania wydarzeń w różnych systemach kalendarza i musi być podany podczas importowania wydarzeń za pomocą metody import.

Pamiętaj, że iCalUIDid nie są identyczne i podczas tworzenia zdarzenia należy podać tylko jeden z nich. Jednym z różnic w ich semantyce jest to, że w przypadku cyklicznych zdarzeń wszystkie wystąpienia jednego zdarzenia mają różne wartości id, ale wszystkie mają te same wartości iCalUID. Aby pobrać zdarzenie za pomocą jego iCalUID, wywołaj metodę events.list, podając parametr iCalUID. Aby pobrać zdarzenie za pomocą jego id, wywołaj metodę events.get.

start nested object Godzina rozpoczęcia wydarzenia (włącznie). W przypadku wydarzenia cyklicznego jest to czas rozpoczęcia pierwszego wystąpienia.
Właściwości opcjonalne
anyoneCanAddSelf boolean Czy każdy może zaprosić siebie na wydarzenie (ta opcja została wycofana). Opcjonalnie: Wartość domyślna to False (fałsz). zapisywalny
attachments[].fileUrl string Link do załącznika.

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

Wymagane podczas dodawania załącznika.

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

Wymagane podczas dodawania uczestnika.

zapisywalny
attendees[].optional boolean Określa, czy jest to uczestnik opcjonalny. Opcjonalnie: Wartość domyślna to False (fałsz). zapisywalny
attendees[].resource boolean Czy uczestnik jest zasobem. Można go ustawić tylko wtedy, gdy uczestnik jest po raz pierwszy dodawany do wydarzenia. Kolejne modyfikacje są ignorowane. Opcjonalnie: Wartość domyślna to False (fałsz). zapisywalny
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 zaakceptował wstępnie zaproszenie.
  • accepted” – uczestnik zaakceptował zaproszenie.
zapisywalny
attendeesOmitted boolean Czy uczestnicy mogą zostać pominięci w reprezentacji wydarzenia. Podczas pobierania zdarzenia może to być spowodowane ograniczeniem określonym przez parametr zapytania maxAttendee. Podczas aktualizowania wydarzenia możesz użyć tej opcji, aby zaktualizować tylko odpowiedź uczestnika. Opcjonalnie: Wartość domyślna to False (fałsz). zapisywalny
colorId string Kolor zdarzenia. Jest to identyfikator odnoszący się do wpisu w sekcji event definicji kolorów (patrz punkt końcowy colors). Opcjonalnie: zapisywalny
conferenceData nested object informacje dotyczące konferencji, takie jak szczegóły konferencji w Google Meet; Aby utworzyć nowe szczegóły konferencji, użyj pola createRequest. Aby zmiany były trwałe, pamiętaj, aby w przypadku wszystkich żądań modyfikacji zdarzenia ustawić parametr conferenceDataVersion na 1. zapisywalny
description string Opis wydarzenia. Może zawierać kod HTML. Opcjonalnie: zapisywalny
end.date date Data w formacie „RRRR-MM-DD”, jeśli jest to wydarzenie całodniowe. zapisywalny
end.dateTime datetime Czas jako połączona wartość daty i czasu (sformatowana zgodnie ze standardem RFC3339). Wymagane jest przesunięcie strefy czasowej, chyba że strefa czasowa jest wyraźnie określona w elementach timeZone. zapisywalny
end.timeZone string Strefa czasowa, w której jest podany czas. (w formacie nazwy strefy czasowej z bazy danych IANA, np. „Europe/Warsaw”). W przypadku zdarzeń cyklicznych to pole jest wymagane i określa strefę czasową, w której rozszerzona jest powtarzalność. W przypadku pojedynczych wydarzeń to pole jest opcjonalne i wskazuje niestandardową strefę czasową rozpoczęcia/zakończenia wydarzenia. zapisywalny
extendedProperties.private object Właściwości, które są prywatne dla kopii wydarzenia widocznej w tym kalendarzu. zapisywalny
extendedProperties.shared object Właściwości, które są wspólne dla kopii wydarzenia w kalendarzach innych uczestników. zapisywalny
focusTimeProperties nested object Dane zdarzenia typu Czas skupienia. Używany, jeśli eventType to focusTime. zapisywalny
gadget.display string Tryb wyświetlania gadżetu. Rola wycofana. Możliwe wartości:
  • icon” – gadżet wyświetla się obok tytułu wydarzenia w widoku kalendarza.
  • chip” – gadżet wyświetla się po kliknięciu zdarzenia.
zapisywalny
gadget.height integer Wysokość gadżetu w pikselach. Wysokość musi być liczbą całkowitą większą od 0. Opcjonalnie: Rola wycofana. zapisywalny
gadget.preferences object Ustawienia. zapisywalny
gadget.title string Tytuł gadżetu. Rola wycofana. zapisywalny
gadget.type string Typ gadżetu. Rola wycofana. zapisywalny
gadget.width integer Szerokość gadżetu w pikselach. Szerokość musi być liczbą całkowitą większą od 0. Opcjonalnie: Rola wycofana. zapisywalny
guestsCanInviteOthers boolean Czy uczestnicy inni niż organizator mogą zapraszać inne osoby na wydarzenie. Opcjonalnie: Wartość domyślna to True. zapisywalny
guestsCanModify boolean Określa, czy uczestnicy inni niż organizator mogą modyfikować wydarzenie. Opcjonalnie: Wartość domyślna to False (fałsz). zapisywalny
guestsCanSeeOtherGuests boolean Określa, czy uczestnicy inni niż organizator mogą zobaczyć, kto bierze udział w wydarzeniu. Opcjonalnie: Wartość domyślna to True. zapisywalny
location string Geograficzna lokalizacja wydarzenia w postaci dowolnego tekstu. Opcjonalnie: zapisywalny
organizer object Organizator wydarzenia. Jeśli organizator jest też uczestnikiem, jest to wskazane w osobnym wpisie w sekcji attendees z polem organizer ustawionym na wartość Prawda. Aby zmienić organizatora, użyj operacji move. Dostęp tylko do odczytu, z wyjątkiem importowania zdarzenia. zapisywalny
organizer.displayName string imię i nazwisko organizatora (jeśli jest dostępne). zapisywalny
organizer.email string Adres e-mail organizatora (jeśli jest dostępny). Musi to być prawidłowy adres e-mail zgodny ze standardem RFC5322. zapisywalny
originalStartTime.date date Data w formacie „RRRR-MM-DD”, jeśli jest to wydarzenie całodniowe. zapisywalny
originalStartTime.dateTime datetime Czas jako połączona wartość daty i czasu (sformatowana zgodnie ze standardem RFC3339). Wymagane jest przesunięcie strefy czasowej, chyba że strefa czasowa jest wyraźnie określona w elementach timeZone. zapisywalny
originalStartTime.timeZone string Strefa czasowa, w której jest podany czas. (w formacie nazwy strefy czasowej z bazy danych IANA, np. „Europe/Warsaw”). W przypadku zdarzeń cyklicznych to pole jest wymagane i określa strefę czasową, w której rozszerzona jest powtarzalność. W przypadku pojedynczych wydarzeń to pole jest opcjonalne i wskazuje niestandardową strefę czasową rozpoczęcia/zakończenia wydarzenia. zapisywalny
outOfOfficeProperties nested object dane o wydarzeniu poza biurem; Używany, jeśli eventType to outOfOffice. zapisywalny
recurrence[] list Lista wierszy RRULE, EXRULE, RDATE i EXDATE dla powtarzającego się zdarzenia, zgodnie z RFC5545. Pamiętaj, że w tym polu nie można używać linii DTSTART i DTEND. Czas rozpoczęcia i zakończenia wydarzenia jest określony w polach start i end. To pole jest pomijane w przypadku pojedynczych wydarzeń lub wystąpień wydarzeń cyklicznych. zapisywalny
reminders.overrides[] list Jeśli zdarzenie nie korzysta z domyślnych przypomnień, wyświetla się lista przypomnień dotyczących tego zdarzenia. Jeśli nie ma przypomnień, wyświetla się informacja, że nie ma żadnych przypomnień dotyczących tego zdarzenia. Maksymalna liczba przypomnień do zastąpienia to 5. zapisywalny
reminders.overrides[].method string Metoda używana przez ten przypomnienie. Możliwe wartości:
  • email” – przypomnienia są wysyłane pocztą e-mail.
  • popup” – przypomnienia są wysyłane przez wyskakujące okienko w interfejsie.

Wymagany podczas dodawania przypomnienia.

zapisywalny
reminders.overrides[].minutes integer Liczba minut przed rozpoczęciem wydarzenia, w których przypomnienie powinno się aktywować. Dozwolone wartości to 0–40 320 (4 tygodnie w minutach).

Wymagany podczas dodawania przypomnienia.

zapisywalny
reminders.useDefault boolean Określa, czy do wydarzenia mają zastosowanie domyślne przypomnienia z kalendarza. zapisywalny
sequence integer Numer sekwencyjny zgodnie z iCalendar. zapisywalny
source.title string Tytuł źródła, np. tytuł strony internetowej lub temat e-maila. zapisywalny
source.url string Adres URL źródła wskazującego zasób. Schemat adresu URL musi być HTTP lub HTTPS. zapisywalny
start.date date Data w formacie „RRRR-MM-DD”, jeśli jest to wydarzenie całodniowe. zapisywalny
start.dateTime datetime Czas jako połączona wartość daty i czasu (sformatowana zgodnie ze standardem RFC3339). Wymagane jest przesunięcie strefy czasowej, chyba że strefa czasowa jest wyraźnie określona w elementach timeZone. zapisywalny
start.timeZone string Strefa czasowa, w której jest podany czas. (w formacie nazwy strefy czasowej z bazy danych IANA, np. „Europe/Warsaw”). W przypadku zdarzeń cyklicznych to pole jest wymagane i określa strefę czasową, w której rozszerzona jest powtarzalność. W przypadku pojedynczych wydarzeń to pole jest opcjonalne i wskazuje niestandardową strefę czasową rozpoczęcia/zakończenia wydarzenia. zapisywalny
status string Stan zdarzenia. Opcjonalnie: Możliwe wartości:
  • confirmed” – zdarzenie jest potwierdzone. Jest to stan domyślny.
  • tentative” – zdarzenie jest wstępnie potwierdzone.
  • cancelled” – zdarzenie zostało anulowane (usunięte). Metoda list zwraca anulowane zdarzenia tylko w przypadku synchronizacji przyrostowej (gdy są określone parametry syncToken lub updatedMin) albo jeśli flaga showDeleted ma wartość true. Metoda get zawsze zwraca te wartości.

    Stan „Anulowano” może oznaczać 2 różne stany w zależności od typu zdarzenia:

    1. Anulowane wyjątki nieanulowanego wydarzenia cyklicznego wskazują, że to wystąpienie nie powinno być już wyświetlane użytkownikowi. Klienci powinni przechowywać te zdarzenia przez cały czas trwania nadrzędnego wydarzenia cyklicznego.

      Wyjątki anulowanych reklam mają wypełnione tylko pola id, recurringEventIdoriginalStartTime. Pozostałe pola mogą być puste.

    2. Wszystkie inne anulowane wydarzenia to usunięte wydarzenia. Klienci powinni usunąć skopiowane lokalnie pliki. Anulowane wydarzenia ostatecznie znikną, więc nie należy zakładać, że będą dostępne bezterminowo.

      W przypadku usuniętych zdarzeń z pewnością wypełnione jest tylko pole id.

    W kalendarzu organizatora anulowane wydarzenia nadal zawierają szczegóły (podsumowanie, lokalizację itp.), dzięki czemu można je przywrócić (odzyskać). Podobnie informacje o wydarzeniu, na które użytkownik został zaproszony i które usunął ręcznie, nadal są dostępne. Jednak żądania stopniowej synchronizacji z wartością showDeleted równą „false” nie zwracają tych szczegółów.

    Jeśli organizator wydarzenia zmieni się (np. za pomocą operacji przenoszenia), a pierwotny organizator nie znajduje się na liście uczestników, pozostanie anulowane wydarzenie, w którym wypełnione będzie tylko pole id.

zapisywalny
summary string Nazwa wydarzenia, zapisywalny
transparency string Określa, czy wydarzenie blokuje czas w kalendarzu. Opcjonalnie: Możliwe wartości:
  • opaque” – wartość domyślna. Wydarzenie blokuje czas w kalendarzu. Jest to równoznaczne z ustawieniem Pokaż mnie jako na Zajęty w interfejsie Kalendarza.
  • transparent” – wydarzenie nie blokuje czasu w kalendarzu. Jest to równoznaczne z ustawieniem Pokaż mnie jako na Dostępny w interfejsie Kalendarza.
zapisywalny
visibility string Widoczność zdarzenia. Opcjonalnie: Możliwe wartości:
  • default” – używa domyślnej widoczności wydarzeń w kalendarzu. Jest to wartość domyślna.
  • public” – wydarzenie jest publiczne, a szczegóły są widoczne dla wszystkich czytelników kalendarza.
  • private” – wydarzenie jest prywatne i tylko uczestnicy mogą wyświetlać jego szczegóły.
  • confidential” – zdarzenie jest prywatne. Ta wartość jest podawana ze względów związanych ze zgodnością.
zapisywalny

Odpowiedź

Jeśli operacja się powiedzie, zwróci ona w swoim ciele odpowiedź z zasobem Events.

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

Korzysta z biblioteki klienta 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

Korzysta z biblioteki klienta Pythona.

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

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

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

Wypróbuj

Aby wywołać tę metodę na podstawie danych na żywo i zobaczyć odpowiedź, użyj narzędzia APIs Explorer.