Events: import

Mengimpor peristiwa. Operasi ini digunakan untuk menambahkan salinan pribadi acara yang sudah ada ke kalender. Coba sekarang atau lihat contohnya.

Permintaan

Permintaan HTTP

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

Parameter

Nama parameter Nilai Deskripsi
Parameter jalur
calendarId string ID kalender. Untuk mengambil ID kalender, panggil metode calendarList.list. Jika Anda ingin mengakses kalender utama dari pengguna yang saat ini login, gunakan kata kunci "primary".
Parameter kueri opsional
conferenceDataVersion integer Nomor versi data konferensi yang didukung oleh klien API. Versi 0 mengasumsikan tidak ada dukungan data konferensi dan mengabaikan data konferensi di isi acara. Versi 1 memungkinkan dukungan untuk menyalin ConferenceData serta pembuatan konferensi baru menggunakan kolom createRequest dari konferensiData. Defaultnya adalah 0. Nilai yang dapat diterima adalah 0 hingga 1, inklusif.
supportsAttachments boolean Apakah klien API yang melakukan operasi mendukung lampiran peristiwa. Opsional. Default-nya adalah Salah.

Otorisasi

Permintaan ini memerlukan otorisasi dengan setidaknya salah satu cakupan berikut:

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

Untuk informasi selengkapnya, lihat halaman autentikasi dan otorisasi.

Isi permintaan

Dalam isi permintaan, sediakan Resource peristiwa dengan properti berikut:

Nama properti Nilai Deskripsi Catatan
Properti yang Diperlukan
end nested object Waktu berakhir (eksklusif) acara. Untuk acara rutin, ini adalah waktu berakhir acara pertama.
iCalUID string ID unik peristiwa seperti yang ditetapkan dalam RFC5545. ID ini digunakan untuk mengidentifikasi acara secara unik di seluruh sistem kalender dan harus diberikan saat mengimpor acara melalui metode import.

Perlu diketahui bahwa iCalUID dan id tidak identik dan hanya salah satunya yang harus diberikan pada waktu pembuatan peristiwa. Satu perbedaan dalam semantiknya adalah dalam peristiwa berulang, semua kemunculan dari satu peristiwa memiliki id yang berbeda, sedangkan semuanya memiliki iCalUID yang sama. Untuk mengambil peristiwa menggunakan iCalUID, panggil metodeevents.list menggunakan parameter iCalUID. Untuk mengambil peristiwa menggunakan id, panggil metode events.get.

start nested object Waktu mulai (inklusif) acara. Untuk acara rutin, ini adalah waktu mulai acara pertama.
Properti Opsional
anyoneCanAddSelf boolean Apakah ada orang yang dapat mengundang dirinya sendiri ke acara tersebut (tidak digunakan lagi). Opsional. Default-nya adalah Salah. dapat ditulis
attachments[].fileUrl string Link URL ke lampiran.

Untuk menambahkan lampiran file Google Drive, gunakan format yang sama seperti di properti alternateLink dari referensi Files di Drive API.

Diperlukan saat menambahkan lampiran.

dapat ditulis
attendees[] list Para tamu acara. Lihat panduan Acara dengan tamu untuk informasi selengkapnya tentang cara menjadwalkan acara dengan pengguna kalender lain. Akun layanan harus menggunakan delegasi tingkat domain untuk mengisi daftar tamu. dapat ditulis
attendees[].additionalGuests integer Jumlah tamu tambahan. Opsional. Defaultnya adalah 0. dapat ditulis
attendees[].comment string Komentar tanggapan tamu. Opsional. dapat ditulis
attendees[].displayName string Nama tamu, jika ada. Opsional. dapat ditulis
attendees[].email string Alamat email tamu, jika ada. Kolom ini harus ada saat menambahkan tamu. Harus berupa alamat email yang valid sesuai dengan RFC5322.

Diperlukan saat menambahkan tamu.

dapat ditulis
attendees[].optional boolean Apakah orang ini merupakan peserta opsional. Opsional. Default-nya adalah Salah. dapat ditulis
attendees[].resource boolean Apakah tamu merupakan fasilitas. Hanya dapat ditetapkan saat tamu ditambahkan ke acara untuk pertama kalinya. Perubahan berikutnya akan diabaikan. Opsional. Default-nya adalah Salah. dapat ditulis
attendees[].responseStatus string Status respons tamu. Kemungkinan nilainya adalah:
  • "needsAction" - Tamu belum menanggapi undangan (disarankan untuk acara baru).
  • "declined" - Tamu telah menolak undangan.
  • "tentative" - Tamu telah menerima undangan untuk sementara.
  • "accepted" - Tamu telah menerima undangan.
dapat ditulis
attendeesOmitted boolean Apakah tamu mungkin telah dihilangkan dari representasi acara. Saat mengambil peristiwa, hal ini mungkin karena pembatasan yang ditentukan oleh parameter kueri maxAttendee. Saat memperbarui acara, hal ini dapat digunakan untuk memperbarui respons peserta saja. Opsional. Default-nya adalah Salah. dapat ditulis
colorId string Warna acara. Ini adalah ID yang merujuk pada entri di bagian event definisi warna (lihat endpoint warna). Opsional. dapat ditulis
conferenceData nested object Informasi terkait konferensi, seperti detail konferensi Google Meet. Untuk membuat detail konferensi baru, gunakan kolom createRequest. Untuk mempertahankan perubahan Anda, jangan lupa menetapkan parameter permintaan conferenceDataVersion ke 1 untuk semua permintaan perubahan peristiwa. dapat ditulis
description string Deskripsi acara. Dapat berisi HTML. Opsional. dapat ditulis
end.date date Tanggal, dalam format "yyyy-mm-dd", jika acara ini berlangsung sepanjang hari. dapat ditulis
end.dateTime datetime Waktu, sebagai nilai tanggal-waktu gabungan (diformat sesuai dengan RFC3339). Offset zona waktu diperlukan kecuali jika zona waktu ditentukan secara eksplisit di timeZone. dapat ditulis
end.timeZone string Zona waktu yang digunakan untuk menentukan waktu. (Diformat sebagai nama Database Zona Waktu IANA, mis. "Eropa/Zurich".) Untuk acara berulang, kolom ini wajib diisi dan menentukan zona waktu pengulangan diperluas. Untuk peristiwa tunggal, kolom ini bersifat opsional dan menunjukkan zona waktu kustom untuk awal/akhir acara. dapat ditulis
extendedProperties.private object Properti yang bersifat pribadi untuk salinan acara yang muncul di kalender ini. dapat ditulis
extendedProperties.shared object Properti yang dibagikan di antara salinan acara di kalender tamu lain. dapat ditulis
focusTimeProperties nested object Fokus pada data peristiwa Waktu. Digunakan jika eventType adalah focusTime. dapat ditulis
gadget.display string Mode tampilan gadget. Tidak digunakan lagi. Kemungkinan nilainya adalah:
  • "icon" - Gadget ditampilkan di samping judul acara dalam tampilan kalender.
  • "chip" - Gadget akan ditampilkan bila acara diklik.
dapat ditulis
gadget.height integer Tinggi gadget dalam piksel. Tinggi harus berupa bilangan bulat yang lebih besar dari 0. Opsional. Tidak digunakan lagi. dapat ditulis
gadget.preferences object Preferensi. dapat ditulis
gadget.title string Judul gadget. Tidak digunakan lagi. dapat ditulis
gadget.type string Jenis gadget. Tidak digunakan lagi. dapat ditulis
gadget.width integer Lebar gadget dalam piksel. Lebar harus berupa bilangan bulat yang lebih besar dari 0. Opsional. Tidak digunakan lagi. dapat ditulis
guestsCanInviteOthers boolean Apakah tamu selain penyelenggara dapat mengundang orang lain ke acara tersebut. Opsional. Nilai defaultnya adalah True (Benar). dapat ditulis
guestsCanModify boolean Apakah tamu selain penyelenggara dapat mengubah acara. Opsional. Default-nya adalah Salah. dapat ditulis
guestsCanSeeOtherGuests boolean Apakah tamu selain penyelenggara dapat melihat siapa saja peserta acara. Opsional. Nilai defaultnya adalah True (Benar). dapat ditulis
location string Lokasi geografis acara sebagai teks bentuk bebas. Opsional. dapat ditulis
organizer object Penyelenggara acara. Jika penyelenggara juga merupakan tamu, hal ini ditunjukkan dengan entri terpisah di attendees dengan kolom organizer ditetapkan ke Benar. Untuk mengubah penyelenggara, gunakan operasi pindahkan. Hanya baca, kecuali saat mengimpor acara. dapat ditulis
organizer.displayName string Nama penyelenggara, jika tersedia. dapat ditulis
organizer.email string Alamat email penyelenggara, jika tersedia. Harus berupa alamat email yang valid sesuai dengan RFC5322. dapat ditulis
originalStartTime.date date Tanggal, dalam format "yyyy-mm-dd", jika acara ini berlangsung sepanjang hari. dapat ditulis
originalStartTime.dateTime datetime Waktu, sebagai nilai tanggal-waktu gabungan (diformat sesuai dengan RFC3339). Offset zona waktu diperlukan kecuali jika zona waktu ditentukan secara eksplisit di timeZone. dapat ditulis
originalStartTime.timeZone string Zona waktu yang digunakan untuk menentukan waktu. (Diformat sebagai nama Database Zona Waktu IANA, mis. "Eropa/Zurich".) Untuk acara berulang, kolom ini wajib diisi dan menentukan zona waktu pengulangan diperluas. Untuk peristiwa tunggal, kolom ini bersifat opsional dan menunjukkan zona waktu kustom untuk awal/akhir acara. dapat ditulis
outOfOfficeProperties nested object Data peristiwa tidak di kantor. Digunakan jika eventType adalah outOfOffice. dapat ditulis
recurrence[] list Daftar baris RRules, EXRules, RDATE, dan EXDATE untuk acara rutin, seperti yang ditentukan dalam RFC5545. Perhatikan bahwa baris DTSTART dan DTEND tidak diizinkan di kolom ini; waktu mulai dan berakhir acara ditentukan di kolom start dan end. Kolom ini dihilangkan untuk satu acara atau beberapa acara rutin. dapat ditulis
reminders.overrides[] list Jika acara tidak menggunakan pengingat default, ini akan mencantumkan pengingat khusus untuk acara tersebut, atau, jika tidak disetel, menunjukkan bahwa tidak ada pengingat yang disetel untuk acara ini. Jumlah maksimum pengingat penggantian adalah 5. dapat ditulis
reminders.overrides[].method string Metode yang digunakan oleh pengingat ini. Kemungkinan nilainya adalah:
  • "email" - Pengingat dikirim melalui email.
  • "popup" - Pengingat dikirim melalui pop-up UI.

Diperlukan saat menambahkan pengingat.

dapat ditulis
reminders.overrides[].minutes integer Jumlah menit sebelum mulainya peristiwa saat pengingat akan dipicu. Nilai yang valid adalah antara 0 dan 40320 (4 minggu dalam menit).

Diperlukan saat menambahkan pengingat.

dapat ditulis
reminders.useDefault boolean Apakah pengingat default kalender berlaku untuk acara. dapat ditulis
sequence integer Nomor urut sesuai iCalendar. dapat ditulis
source.title string Judul sumber; misalnya, judul halaman web atau subjek email. dapat ditulis
source.url string URL sumber yang mengarah ke resource. Skema URL harus berupa HTTP atau HTTPS. dapat ditulis
start.date date Tanggal, dalam format "yyyy-mm-dd", jika acara ini berlangsung sepanjang hari. dapat ditulis
start.dateTime datetime Waktu, sebagai nilai tanggal-waktu gabungan (diformat sesuai dengan RFC3339). Offset zona waktu diperlukan kecuali jika zona waktu ditentukan secara eksplisit di timeZone. dapat ditulis
start.timeZone string Zona waktu yang digunakan untuk menentukan waktu. (Diformat sebagai nama Database Zona Waktu IANA, mis. "Eropa/Zurich".) Untuk acara berulang, kolom ini wajib diisi dan menentukan zona waktu pengulangan diperluas. Untuk peristiwa tunggal, kolom ini bersifat opsional dan menunjukkan zona waktu kustom untuk awal/akhir acara. dapat ditulis
status string Status peristiwa. Opsional. Kemungkinan nilainya adalah:
  • "confirmed" - Acara telah dikonfirmasi. Ini adalah status default.
  • "tentative" - Acara dikonfirmasi untuk sementara.
  • "cancelled" - Acara dibatalkan (dihapus). Metode list menampilkan peristiwa yang dibatalkan hanya pada sinkronisasi inkremental (saat syncToken atau updatedMin ditentukan) atau jika flag showDeleted disetel ke true. Metode get selalu menampilkannya.

    Status dibatalkan mewakili dua status yang berbeda bergantung pada jenis peristiwa:

    1. Pengecualian yang dibatalkan dari acara berulang yang tidak dibatalkan menunjukkan bahwa instance ini tidak akan ditampilkan lagi kepada pengguna. Klien harus menyimpan peristiwa ini selama masa aktif acara rutin induk.

      Pengecualian yang dibatalkan hanya dijamin memiliki nilai untuk kolom id, recurringEventId, dan originalStartTime yang terisi. Kolom lainnya mungkin kosong.

    2. Semua acara lainnya yang dibatalkan mewakili acara yang dihapus. Klien harus menghapus salinan yang disinkronkan secara lokal. Acara yang dibatalkan tersebut pada akhirnya akan hilang, jadi jangan mengandalkan ketersediaannya tanpa batas waktu.

      Peristiwa yang dihapus hanya dijamin memiliki kolom id yang terisi.

    Di kalender penyelenggara, acara yang dibatalkan akan tetap menampilkan detail acara (ringkasan, lokasi, dll.) sehingga acara tersebut dapat dipulihkan (dibatalkan penghapusannya). Demikian pula, acara yang mengundang pengguna dan yang dihapus secara manual terus memberikan detailnya. Namun, permintaan sinkronisasi inkremental dengan showDeleted yang disetel ke salah (false) tidak akan menampilkan detail ini.

    Jika acara mengubah penyelenggaranya (misalnya melalui operasi pemindahan) dan penyelenggara asli tidak ada dalam daftar tamu, acara tersebut akan meninggalkan acara yang dibatalkan, yang hanya memiliki kolom id yang dijamin akan terisi.

dapat ditulis
summary string Judul acara. dapat ditulis
transparency string Apakah acara memblokir waktu di kalender. Opsional. Kemungkinan nilainya adalah:
  • "opaque" - Nilai default. Acara tersebut memblokir waktu di kalender. Ini sama dengan menyetel Tampilkan saya ke Sibuk di UI Kalender.
  • "transparent" - Acara tidak memblokir waktu di kalender. Ini sama dengan menyetel Tampilkan saya sebagai ke Tersedia di UI Kalender.
dapat ditulis
visibility string Visibilitas peristiwa. Opsional. Kemungkinan nilainya adalah:
  • "default" - Menggunakan visibilitas default untuk acara di kalender. Nilai ini merupakan default.
  • "public" - Acara bersifat publik dan detail acara dapat dilihat oleh semua pembaca kalender.
  • "private" - Acara ini bersifat pribadi dan hanya peserta acara yang dapat melihat detail acara.
  • "confidential" - Acara ini bersifat pribadi. Nilai ini diberikan untuk alasan kompatibilitas.
dapat ditulis

Respons

Jika berhasil, metode ini akan menampilkan Resource peristiwa dalam isi respons.

Contoh

Catatan: Contoh kode yang tersedia untuk metode ini tidak merepresentasikan semua bahasa pemrograman yang didukung (lihat halaman library klien untuk mengetahui daftar bahasa yang didukung).

Java

Menggunakan library klien 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

Menggunakan library klien 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

Menggunakan library klien 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

Menggunakan library klien 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

Cobalah!

Gunakan APIs Explorer di bawah untuk memanggil metode ini pada data live dan melihat respons.