Events: import

Importuje zdarzenie. Ta operacja służy do dodawania do kalendarza prywatnej kopii istniejącego wydarzenia. 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 kalendarza głównego obecnie zalogowanego użytkownika, użyj słowa kluczowego „primary”.
Opcjonalne parametry zapytania
conferenceDataVersion integer Numer wersji danych wideo obsługiwanych przez klienta API. Wersja 0 zakłada, że nie będzie obsługiwać danych rozmów wideo, i ignoruje dane konferencyjne w treści wydarzenia. Wersja 1 umożliwia kopiowanie danych ConferenceData oraz tworzenie nowych rozmów wideo w polu createRequest (dane w funkcji DataConference). Wartość domyślna to 0. Akceptowane wartości to 01 (włącznie).
supportsAttachments boolean Określa, czy operacja klienta API obsługuje załączniki zdarzeń. Opcjonalne. Wartość domyślna to 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 uwierzytelniania i autoryzacji.

Treść żądania

W treści żądania dodaj zasób zdarzeń o tych właściwościach:

Nazwa właściwości Wartość Opis Uwagi
Wymagane właściwości
end nested object Godzina zakończenia wydarzenia (wyłącznie). W przypadku wydarzenia cyklicznego jest to godzina zakończenia pierwszego wystąpienia.
iCalUID string Unikalny identyfikator zdarzenia określony w specyfikacji RFC5545. Służą one do jednoznacznej identyfikacji wydarzeń w różnych kalendarzach i należy je podawać podczas importowania wydarzeń przy użyciu metody importu.

Pamiętaj, że iCalUID i id nie są identyczne i tylko jeden z nich należy podać podczas tworzenia zdarzenia. Jedną z ich semantyk jest to, że w wydarzeniach cyklicznych wszystkie wystąpienia jednego wydarzenia mają różne id, ale wszystkie mają te same iCalUID. Aby pobrać zdarzenie za pomocą jego iCalUID, wywołaj metodę events.list za pomocą parametru iCalUID. Aby pobrać zdarzenie za pomocą jego wywołania id, wywołaj metodę events.get.

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 zapraszać do udziału w wydarzeniu (wycofany). Opcjonalne. Wartość domyślna to Fałsz. zapisywalny
attachments[].fileUrl string Adres URL załącznika.

Dodaj pliki z Dysku Google, używając tego samego formatu co we właściwości alternateLink zasobu Files w interfejsie Drive API.

Wymagane podczas dodawania załącznika.

zapisywalny
attendees[] list Uczestnicy wydarzenia. Przeczytaj przewodnik Wydarzenia z uczestnikami, aby dowiedzieć się więcej o planowaniu wydarzeń z innymi użytkownikami kalendarza. 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. Opcjonalne. Wartość domyślna to 0. zapisywalny
attendees[].comment string Komentarz do odpowiedzi uczestnika. Opcjonalne. zapisywalny
attendees[].displayName string Imię i nazwisko uczestnika (jeśli jest dostępne). Opcjonalne. zapisywalny
attendees[].email string Adres e-mail uczestnika (jeśli jest dostępny). To pole musi być widoczne podczas dodawania uczestnika. Podaj prawidłowy adres e-mail zgodnie z normą RFC5322.

Wymagane przy dodawaniu uczestnika.

zapisywalny
attendees[].optional boolean Określa, czy jest to uczestnik opcjonalny. Opcjonalne. Wartość domyślna to Fałsz. zapisywalny
attendees[].resource boolean Określa, czy uczestnik jest zasobem. Można ją ustawić tylko wtedy, gdy uczestnik zostanie dodany do wydarzenia po raz pierwszy. Kolejne zmiany są ignorowane. Opcjonalne. Wartość domyślna to 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” – osoba wstępna zaakceptowała zaproszenie.
  • accepted” – uczestnik zaakceptował zaproszenie.
zapisywalny
attendeesOmitted boolean Wskazuje, czy uczestnicy mogli nie być reprezentowani przez wydarzenie. Gdy pobierasz zdarzenie, może to być spowodowane ograniczeniami określonym przez parametr zapytania maxAttendee. Podczas aktualizowania wydarzenia można za jego pomocą zaktualizować tylko odpowiedź uczestnika. Opcjonalne. Wartość domyślna to Fałsz. zapisywalny
colorId string Kolor wydarzenia. Jest to identyfikator odnoszący się do wpisu w sekcji event definicji kolorów (patrz punkt końcowy kolorów). Opcjonalne. zapisywalny
conferenceData nested object informacje związane z konferencją, na przykład szczegóły konferencji w Google Meet; Aby utworzyć nowe szczegóły rozmowy wideo, użyj pola createRequest. Aby zachować zmiany, ustaw dla wszystkich żądań modyfikacji zdarzeń parametr conferenceDataVersion na 1. zapisywalny
description string Opis wydarzenia. Może zawierać kod HTML. Opcjonalne. zapisywalny
end.date date Data w formacie „rrrr-mm-dd”, jeśli jest to wydarzenie całodniowe. zapisywalny
end.dateTime datetime Godzina w postaci połączonej wartości daty i godziny (w formacie RFC3339). Wymagane jest przesunięcie strefy czasowej, chyba że w polu timeZone wyraźnie określono strefę czasową. zapisywalny
end.timeZone string Strefa czasowa określonej strefy czasowej. Sformatowana jako nazwa bazy danych stref czasowych IANA, np. „Europa/Zurych”. W przypadku wydarzeń cyklicznych to pole jest wymagane i określa strefę czasową, w której rozwija się powtarzanie. 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 prywatne dotyczące kopii wydarzenia wyświetlanego w tym kalendarzu. zapisywalny
extendedProperties.shared object Usługi współdzielone między kopiami wydarzenia w kalendarzach innych uczestników. zapisywalny
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 jest wyświetlany po kliknięciu zdarzenia.
zapisywalny
gadget.height integer Wysokość gadżetu dla pikseli. Wysokość musi być liczbą całkowitą większą od 0. Opcjonalne. 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ą niż 0. Opcjonalne. Rola wycofana. zapisywalny
guestsCanInviteOthers boolean Określa, czy uczestnicy mogą brać udział w wydarzeniu. Opcjonalne. Wartość domyślna to True. zapisywalny
guestsCanModify boolean Określa, czy uczestnicy mogą modyfikować wydarzenie inne niż organizator. Opcjonalne. Wartość domyślna to Fałsz. zapisywalny
guestsCanSeeOtherGuests boolean Określa, czy uczestnicy inni niż organizatorzy mogą zobaczyć listę uczestników wydarzenia. Opcjonalne. Wartość domyślna to True. zapisywalny
location string Położenie geograficzne zdarzenia w dowolnym formacie tekstu. Opcjonalne. zapisywalny
organizer object Organizator wydarzenia. Jeśli uczestnik jest też uczestnikiem, w attendees jest to wskazywane z oddzielnym wpisem z polem organizer ustawionym na True. Aby zmienić organizatora, użyj operacji move. Tylko do odczytu, z wyjątkiem importu zdarzenia. zapisywalny
organizer.displayName string Nazwa organizatora, jeśli jest dostępna. zapisywalny
organizer.email string Adres e-mail organizatora (jeśli jest dostępny). Podaj prawidłowy adres e-mail zgodnie z normą RFC5322. zapisywalny
originalStartTime.date date Data w formacie „rrrr-mm-dd”, jeśli jest to wydarzenie całodniowe. zapisywalny
originalStartTime.dateTime datetime Godzina w postaci połączonej wartości daty i godziny (w formacie RFC3339). Wymagane jest przesunięcie strefy czasowej, chyba że w polu timeZone wyraźnie określono strefę czasową. zapisywalny
originalStartTime.timeZone string Strefa czasowa określonej strefy czasowej. Sformatowana jako nazwa bazy danych stref czasowych IANA, np. „Europa/Zurych”. W przypadku wydarzeń cyklicznych to pole jest wymagane i określa strefę czasową, w której rozwija się powtarzanie. W przypadku pojedynczych wydarzeń to pole jest opcjonalne i wskazuje niestandardową strefę czasową rozpoczęcia/zakończenia wydarzenia. zapisywalny
recurrence[] list Lista wierszy RRULE, EXRULE, RDATE i EXDATE wydarzeń cyklicznych, jak określono w RFC5545. Pamiętaj, że wiersze DTSTART i DTEND w tym polu nie są dozwolone. Godziny rozpoczęcia i zakończenia wydarzenia są określone w polach start i end. To pole jest pomijane w przypadku pojedynczych wydarzeń lub wystąpień cyklicznych. zapisywalny
reminders.overrides[] list Jeśli wydarzenie nie korzysta z przypomnień domyślnych, wyświetlają się przypomnienia dotyczące tego wydarzenia. Jeśli nie są ustawione, oznacza to, że dla tego wydarzenia nie są ustawione żadne przypomnienia. Maksymalna liczba przypomnień o zastąpieniu to 5. zapisywalny
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 interfejsu.

Wymagane podczas dodawania przypomnienia.

zapisywalny
reminders.overrides[].minutes integer Liczba minut przed rozpoczęciem wydarzenia, w którym powinno się włączyć przypomnienie. Prawidłowe wartości to 0 – 40320 (4 tygodnie w minutach).

Wymagane podczas dodawania przypomnienia.

zapisywalny
reminders.useDefault boolean Określa, czy domyślne przypomnienia kalendarza mają zastosowanie do wydarzenia. zapisywalny
sequence integer Numer sekwencyjny według iCalendar. zapisywalny
source.title string Tytuł źródła, np. tytuł strony internetowej lub tematu e-maila. zapisywalny
source.url string Adres URL źródła wskazującego zasób. Schemat adresu URL musi zawierać protokół HTTP lub HTTPS. zapisywalny
start.date date Data w formacie „rrrr-mm-dd”, jeśli jest to wydarzenie całodniowe. zapisywalny
start.dateTime datetime Godzina w postaci połączonej wartości daty i godziny (w formacie RFC3339). Wymagane jest przesunięcie strefy czasowej, chyba że w polu timeZone wyraźnie określono strefę czasową. zapisywalny
start.timeZone string Strefa czasowa określonej strefy czasowej. Sformatowana jako nazwa bazy danych stref czasowych IANA, np. „Europa/Zurych”. W przypadku wydarzeń cyklicznych to pole jest wymagane i określa strefę czasową, w której rozwija się powtarzanie. W przypadku pojedynczych wydarzeń to pole jest opcjonalne i wskazuje niestandardową strefę czasową rozpoczęcia/zakończenia wydarzenia. zapisywalny
status string Stan wydarzenia. Opcjonalne. Możliwe wartości:
  • confirmed” – wydarzenie zostało potwierdzone. Jest to stan domyślny.
  • tentative” – wstępne wydarzenie zostało potwierdzone.
  • cancelled” – wydarzenie zostało anulowane (usunięte). Metoda list zwraca anulowane zdarzenia tylko podczas przyrostowej synchronizacji (gdy syncToken lub updatedMin) jest określona, lub jeśli flaga showDeleted jest ustawiona na true. Metoda get zawsze je zwraca.

    Stan „Anulowano” wskazuje dwa różne stany w zależności od typu zdarzenia:

    1. Anulowane wyjątki nieodwołanego wydarzenia cyklicznego wskazują, że ta instancja nie powinna być już widoczna dla użytkownika. Klienci powinni przechowywać te zdarzenia w czasie trwania nadrzędnego wydarzenia cyklicznego.

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

    2. Wszystkie inne anulowane wydarzenia odpowiadają usuniętym. Klienci powinni usunąć kopie zsynchronizowane lokalnie. Takie anulowane wydarzenia z czasem znikną, więc nie oczekuj, że będą dostępne bezterminowo.

      Usunięte wydarzenia mogą mieć tylko pole id.

    W kalendarzu organizatora anulowane wydarzenia nadal są ujawniane szczegóły wydarzenia (podsumowanie, lokalizacja itp.), dzięki czemu można je przywrócić. Analogicznie zdarzenia, na które użytkownik został zaproszony i które zostały ręcznie usunięte, nadal zawierają szczegóły. Jednak przyrostowe żądania synchronizacji z ustawieniem showDeleted ustawionym na fałsz nie spowodują wyświetlenia tych szczegółów.

    Jeśli organizator zmieni swojego organizatora (na przykład w wyniku wykonania operacji move), a pierwotny organizator nie znajduje się na liście uczestników, pozostanie w nim anulowane wydarzenie, w którym gwarantowane jest wypełnienie tylko pola id.

zapisywalny
summary string Nazwa wydarzenia, zapisywalny
transparency string Określa, czy wydarzenie blokuje czas w kalendarzu. Opcjonalne. Możliwe wartości:
  • opaque” – wartość domyślna. To wydarzenie blokuje czas w kalendarzu. Odpowiada to ustawieniu Pokaż mój stan jako na Zajęty w interfejsie Kalendarza.
  • transparent” – wydarzenie nie blokuje czasu w kalendarzu. Odpowiada to ustawieniu Pokaż mi jako na wartość Dostępna w interfejsie Kalendarza.
zapisywalny
visibility string Widoczność wydarzenia. Opcjonalne. 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 jego uczestnicy mogą wyświetlać szczegóły wydarzenia.
  • confidential” – jest prywatne. Ta wartość jest podana ze względu na zgodność.
zapisywalny

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 w języku 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 dla języka Python.

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

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