Events: import

Importuje zdarzenie. Ta operacja pozwala dodać prywatną kopię istniejącego wydarzenia do kalendarza. Można importować tylko zdarzenia z eventType o wartości default.

Wycofane działanie: jeśli zaimportowane zdarzenie inne niż default zostanie zaimportowane, jego typ zostanie zmieniony na default, a wszelkie związane z nim właściwości zostaną pominięte.

Wypróbuj teraz lub zobacz przykład.

Prośba

Żą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 kalendarza głównego aktualnie zalogowanego użytkownika, użyj słowa kluczowego „primary”.
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 takie dane w treści wydarzenia. Wersja 1 umożliwia obsługę kopiowania danych konferencji i tworzenia nowych rozmów wideo przy użyciu pola createRequest danych konferencji Data. Wartość domyślna to 0. Akceptowane wartości to od 0 do 1 (włącznie).
supportsAttachments boolean Czy operacje wykonywane przez klienta interfejsu API obsługują załączniki do zdarzeń. Opcjonalnie. Wartością domyślną jest Fałsz.

Upoważnienie

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 Uwierzytelnianie i autoryzacja.

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 (wyłączna) godzina zakończenia wydarzenia. W przypadku wydarzenia cyklicznego jest to godzina zakończenia pierwszego wystąpienia.
iCalUID string Unikalny identyfikator zdarzenia zdefiniowany w dokumencie RFC5545. Służy on do jednoznacznego identyfikowania wydarzeń w systemach kalendarzy i musi być podawany podczas importowania wydarzeń za pomocą metody import.

Pamiętaj, że właściwości iCalUID i id nie są identyczne i w momencie tworzenia zdarzenia należy podać tylko jeden z nich. Jedyna różnica w ich semantyce polega na tym, że w przypadku wydarzeń cyklicznych wszystkie wystąpienia jednego zdarzenia mają różne id, a wszystkie te same zdarzenia iCalUID. Aby pobrać zdarzenie za pomocą parametru iCalUID, wywołaj metodę events.list za pomocą parametru iCalUID. Aby pobrać zdarzenie za pomocą jego atrybutu id, wywołaj metodę events.get.

start nested object Godzina rozpoczęcia (włącznie) wydarzenia. 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ć siebie na wydarzenie (wycofane). Opcjonalnie. Wartością domyślną jest Fałsz. z możliwością zapisu
attachments[].fileUrl string Adres URL załącznika.

Aby dodawać załączniki z plików z Dysku Google, używaj 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 wypeł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 jest 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. Musi to być prawidłowy adres e-mail zgodny ze standardem RFC5322.

Wymagane przy dodawaniu uczestnika.

z możliwością zapisu
attendees[].optional boolean Określa, czy jest to opcjonalny uczestnik. Opcjonalnie. Wartością domyślną jest Fałsz. z możliwością zapisu
attendees[].resource boolean Wskazuje, czy uczestnik jest zasobem. To ustawienie można skonfigurować tylko wtedy, gdy uczestnik jest dodawany do wydarzenia po raz pierwszy. Kolejne zmiany są ignorowane. Opcjonalnie. Wartością domyślną jest 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 zaakceptował zaproszenie.
  • accepted” – uczestnik zaakceptował zaproszenie.
z możliwością zapisu
attendeesOmitted boolean Określa, czy uczestnicy mogli zostać pominięci w prezentacji wydarzenia. Gdy pobierasz zdarzenie, może to być spowodowane ograniczeniem określonym przez parametr zapytania maxAttendee. Podczas aktualizowania wydarzenia można zmienić tylko odpowiedź uczestnika. Opcjonalnie. Wartością domyślną jest Fałsz. z możliwością zapisu
colorId string Kolor wydarzenia. Jest 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 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 zdarzeń. 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 łączna wartość daty i godziny (sformatowana zgodnie ze standardem RFC3339). Przesunięcie strefy czasowej jest wymagane, chyba że jednoznacznie określisz strefę czasową w polu timeZone. z możliwością zapisu
end.timeZone string Strefa czasowa, w której jest określona godzina. (Sformatowana jako nazwa bazy danych strefy czasowej IANA, np. „Europa/Zurych”). W przypadku wydarzeń cyklicznych to pole jest wymagane i określa strefę czasową, w której powtarzanie jest rozszerzane. W przypadku pojedynczych wydarzeń to pole jest opcjonalne i wskazuje niestandardową strefę czasową rozpoczęcia/zakończenia wydarzenia. z możliwością zapisu
extendedProperties.private object Właściwości, które są prywatne w odniesieniu do kopii wydarzenia widocznego w tym kalendarzu. z możliwością zapisu
extendedProperties.shared object Właściwości, które są wspólne dla kopii wydarzenia w kalendarzach innych uczestników. z możliwością zapisu
focusTimeProperties nested object Dane zdarzenia typu czas skupienia. Używana, jeśli eventType ma wartość focusTime. z możliwością zapisu
gadget.display string Tryb wyświetlania gadżetów. 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ść widż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żetów. Rola wycofana. z możliwością zapisu
gadget.type string Typ gadżetów. Rola wycofana. z możliwością zapisu
gadget.width integer Szerokość gadżetów 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 inni niż organizator mogą zapraszać na wydarzenie inne osoby. Opcjonalnie. Wartość domyślna to True. z możliwością zapisu
guestsCanModify boolean Określa, czy uczestnicy inni niż organizator mogą modyfikować wydarzenie. Opcjonalnie. Wartością domyślną jest Fałsz. z możliwością zapisu
guestsCanSeeOtherGuests boolean Określa, czy uczestnicy inni niż organizator mogą zobaczyć, kto jest uczestnikiem wydarzenia. Opcjonalnie. Wartość domyślna to True. z możliwością zapisu
location string Lokalizacja geograficzna wydarzenia w postaci dowolnego tekstu. Opcjonalnie. z możliwością zapisu
organizer object Organizator wydarzenia. Jeśli organizator jest też uczestnikiem, jest to wskazane w osobnym wpisie w polu attendees z polem organizer ustawionym na wartość Prawda. Aby zmienić organizatora, użyj operacji przenieś. Tylko do odczytu, z wyjątkiem importowania zdarzeń. z możliwością zapisu
organizer.displayName string Nazwa organizatora, jeśli jest dostępna. z możliwością zapisu
organizer.email string Adres e-mail organizatora (jeśli jest dostępny). Musi to być prawidłowy adres e-mail zgodny ze standardem RFC5322. 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 łączna wartość daty i godziny (sformatowana zgodnie ze standardem RFC3339). Przesunięcie strefy czasowej jest wymagane, chyba że jednoznacznie określisz strefę czasową w polu timeZone. z możliwością zapisu
originalStartTime.timeZone string Strefa czasowa, w której jest określona godzina. (Sformatowana jako nazwa bazy danych strefy czasowej IANA, np. „Europa/Zurych”). W przypadku wydarzeń cyklicznych to pole jest wymagane i określa strefę czasową, w której powtarzanie jest rozszerzane. W przypadku pojedynczych wydarzeń to pole jest opcjonalne i wskazuje niestandardową strefę czasową rozpoczęcia/zakończenia wydarzenia. z możliwością zapisu
outOfOfficeProperties nested object Dane o wydarzeniu 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 nie są dozwolone w tym polu. Czasy rozpoczęcia i zakończenia zdarzenia są podawane 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, wyświetlane są przypomnienia związane z wydarzeniem lub, jeśli nie są ustawione, 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żywana przez to przypomnienie. Możliwe wartości:
  • email” – przypomnienia są wysyłane e-mailem.
  • popup” – przypomnienia są wysyłane w wyskakującym okienku UI.

Wymagane przy dodawaniu przypomnienia.

z możliwością zapisu
reminders.overrides[].minutes integer Liczba minut przed rozpoczęciem wydarzenia, na które powinno zostać aktywowane przypomnienie. Prawidłowe wartości to od 0 do 40320 (4 tygodnie w minutach).

Wymagane przy dodawaniu przypomnienia.

z możliwością zapisu
reminders.useDefault boolean Określa, czy do wydarzenia mają zastosowanie domyślne przypomnienia kalendarza. z możliwością zapisu
sequence integer Numer sekwencyjny zgodny 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 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 łączna wartość daty i godziny (sformatowana zgodnie ze standardem RFC3339). Przesunięcie strefy czasowej jest wymagane, chyba że jednoznacznie określisz strefę czasową w polu timeZone. z możliwością zapisu
start.timeZone string Strefa czasowa, w której jest określona godzina. (Sformatowana jako nazwa bazy danych strefy czasowej IANA, np. „Europa/Zurych”). W przypadku wydarzeń cyklicznych to pole jest wymagane i określa strefę czasową, w której powtarzanie jest rozszerzane. W przypadku pojedynczych wydarzeń to pole jest opcjonalne i wskazuje niestandardową strefę czasową rozpoczęcia/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 zostało wstępnie potwierdzone.
  • cancelled” – wydarzenie zostało anulowane (usunięte). Metoda list zwraca anulowane zdarzenia tylko podczas synchronizacji przyrostowej (gdy są określone wartości syncToken lub updatedMin) lub jeśli flaga showDeleted jest ustawiona na true. Metoda get zawsze je zwraca.

    Anulowanie ma 2 stany w zależności od typu zdarzenia:

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

      Anulowane wyjątki mogą mieć wypełnione tylko wartości w polach id, recurringEventId i originalStartTime. Pozostałe pola mogą być puste.

    2. Pozostałe anulowane wydarzenia to wydarzenia usunięte. Klient powinien usunąć swoje kopie zsynchronizowane lokalnie. Takie anulowane wydarzenia z czasem znikną, więc nie należy polegać na tym, że będą dostępne bezterminowo.

      Usunięte wydarzenia mają tylko wypełnione pole id.

    W kalendarzu organizatora anulowane wydarzenia nadal ujawniają szczegóły wydarzenia (podsumowanie, lokalizację itp.), dzięki czemu można je przywrócić (przywrócić). Analogicznie szczegóły są dostępne w przypadku wydarzeń, na które użytkownik został zaproszony i który usunięty ręcznie. Jednak przyrostowe żądania synchronizacji z parametrem showDeleted ustawionym na wartość Fałsz nie zwrócą tych informacji.

    Jeśli wydarzenie zmieni organizatora (na przykład przez operację przenoszenia), a pierwotnego organizatora nie ma na liście uczestników, pozostanie anulowane wydarzenie, w którym gwarantowane będzie tylko pole id.

z możliwością zapisu
summary string Nazwa wydarzenia, z możliwością zapisu
transparency string Określa, czy wydarzenie blokuje czas w kalendarzu. Opcjonalnie. Możliwe wartości:
  • opaque” – wartość domyślna. Wydarzenie zablokuje czas w kalendarzu. Jest to odpowiednik ustawienia Pokaż mój stan jako na Zajęty w interfejsie Kalendarza.
  • transparent” – wydarzenie nie blokuje czasu w kalendarzu. Jest to odpowiednik ustawienia Pokaż jako na Dostępny w interfejsie Kalendarza.
z możliwością zapisu
visibility string Widoczność wydarzenia. Opcjonalnie. Możliwe wartości:
  • default” – stosuje domyślną widoczność 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 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

Odpowiedź

Jeśli operacja się uda, metoda zwróci zasób zdarzeń 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.

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

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

Wykorzystuje bibliotekę 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

Użyj eksploratora interfejsów API poniżej, aby wywołać tę metodę na aktywnych danych i zobaczyć odpowiedź.