Events: insert

Membuat peristiwa. Coba sekarang atau lihat contohnya.

Permintaan

Permintaan HTTP

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

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 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 dalam isi peristiwa. Versi 1 memungkinkan dukungan untuk menyalin ConferenceData serta membuat konferensi baru menggunakan kolom createRequest dari conferenceData. Defaultnya adalah 0. Nilai yang dapat diterima adalah 0 hingga 1, inklusif.
maxAttendees integer Jumlah maksimum tamu yang akan disertakan dalam respons. Jika ada lebih dari jumlah tamu yang ditentukan, hanya peserta yang akan ditampilkan. Opsional.
sendNotifications boolean Tidak digunakan lagi. Sebagai gantinya, gunakan sendUpdates.

Apakah akan mengirim notifikasi tentang pembuatan peristiwa baru. Perhatikan bahwa beberapa email mungkin masih dikirim meskipun Anda menetapkan nilai ke false. Defaultnya adalah false.
sendUpdates string Apakah akan mengirim notifikasi tentang pembuatan acara baru. Perhatikan bahwa beberapa email mungkin masih dikirim. Defaultnya adalah false.

Nilai yang dapat diterima adalah:
  • "all": Notifikasi dikirim ke semua tamu.
  • "externalOnly": Notifikasi hanya dikirim ke tamu non-Google Kalender.
  • "none": Tidak ada notifikasi yang dikirim.
supportsAttachments boolean Apakah klien API yang melakukan operasi mendukung lampiran peristiwa. Opsional. Defaultnya 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, berikan resource Peristiwa dengan properti berikut:

Nama properti Nilai Deskripsi Catatan
Properti Wajib
end nested object Waktu berakhir (eksklusif) peristiwa. Untuk peristiwa berulang, ini adalah waktu berakhir instance pertama.
start nested object Waktu mulai (inklusif) acara. Untuk peristiwa berulang, ini adalah waktu mulai instance pertama.
Properti Opsional
anyoneCanAddSelf boolean Apakah siapa saja dapat mengundang diri mereka ke acara (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 resource Files di Drive API.

Diperlukan saat menambahkan lampiran.

dapat ditulis
attendees[] list Peserta acara. Lihat panduan Acara dengan tamu untuk mengetahui 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 respons peserta. Opsional. dapat ditulis
attendees[].displayName string Nama peserta, jika tersedia. Opsional. dapat ditulis
attendees[].email string Alamat email peserta, jika tersedia. Kolom ini harus ada saat menambahkan tamu. Alamat email harus valid sesuai dengan RFC5322.

Wajib diisi saat menambahkan tamu.

dapat ditulis
attendees[].optional boolean Apakah ini tamu opsional. Opsional. Default-nya adalah Salah. dapat ditulis
attendees[].resource boolean Apakah peserta adalah referensi. Hanya dapat ditetapkan saat peserta ditambahkan ke acara untuk pertama kalinya. Modifikasi berikutnya akan diabaikan. Opsional. Defaultnya adalah Salah. dapat ditulis
attendees[].responseStatus string Status respons tamu. Kemungkinan nilainya adalah:
  • "needsAction" - Peserta belum merespons undangan (direkomendasikan untuk acara baru).
  • "declined" - Peserta telah menolak undangan.
  • "tentative" - Peserta telah menerima undangan untuk sementara.
  • "accepted" - Tamu telah menerima undangan.
dapat ditulis
birthdayProperties nested object Data tanggal lahir atau peristiwa spesial. Digunakan jika eventType adalah "birthday". Tidak dapat diubah. dapat ditulis
birthdayProperties.type string Jenis ulang tahun atau acara spesial. Kemungkinan nilainya adalah:
  • "anniversary" - Hari jadi selain ulang tahun. Selalu memiliki contact.
  • "birthday" - Peristiwa ulang tahun. Nilai ini merupakan default.
  • "custom" - Tanggal khusus yang labelnya ditentukan lebih lanjut di kolom customTypeName. Selalu memiliki contact.
  • "other" - Tanggal khusus yang tidak termasuk dalam kategori lain dan tidak memiliki label khusus. Selalu memiliki contact.
  • "self" - Ulang tahun pemilik kalender. Tidak boleh memiliki contact.
Calendar API hanya mendukung pembuatan acara dengan jenis "birthday". Jenis tidak dapat diubah setelah peristiwa dibuat.
dapat ditulis
colorId string Warna peristiwa. Ini adalah ID yang merujuk ke 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, jangan lupa untuk 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 ini adalah acara 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 tempat waktu ditentukan. (Diformat sebagai nama Database Zona Waktu IANA, misalnya "Eropa/Zurich".) Untuk acara berulang, kolom ini diperlukan dan menentukan zona waktu tempat pengulangan diperluas. Untuk satu peristiwa, kolom ini bersifat opsional dan menunjukkan zona waktu kustom untuk waktu mulai/akhir peristiwa. dapat ditulis
eventType string Jenis peristiwa tertentu. Setelan ini tidak dapat diubah setelah acara dibuat. Kemungkinan nilainya adalah:
  • "birthday" - Acara khusus sepanjang hari dengan pengulangan tahunan.
  • "default" - Acara reguler atau tidak ditentukan lebih lanjut.
  • "focusTime" - Acara waktu fokus.
  • "fromGmail" - Acara dari Gmail. Jenis peristiwa ini tidak dapat dibuat.
  • "outOfOffice" - Peristiwa tidak di kantor.
  • "workingLocation" - Peristiwa lokasi kerja.
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 Data peristiwa Waktu Fokus. 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 saat 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. Opsional. Defaultnya adalah True. dapat ditulis
guestsCanModify boolean Apakah peserta selain penyelenggara dapat mengubah acara. Opsional. Default-nya adalah Salah. dapat ditulis
guestsCanSeeOtherGuests boolean Apakah peserta selain penyelenggara dapat melihat siapa saja peserta acara. Opsional. Defaultnya adalah True. dapat ditulis
id string ID tersembunyi peristiwa. Saat membuat peristiwa tunggal atau berulang baru, Anda dapat menentukan ID-nya. ID yang diberikan harus mengikuti aturan berikut:
  • karakter yang diizinkan dalam ID adalah karakter yang digunakan dalam encoding base32hex, yaitu huruf kecil a-v dan angka 0-9, lihat bagian 3.1.2 di RFC2938
  • panjang ID harus antara 5 dan 1.024 karakter
  • ID harus unik per kalender
Karena sifat sistem yang didistribusikan secara global, kami tidak dapat menjamin bahwa konflik ID akan terdeteksi pada waktu pembuatan peristiwa. Untuk meminimalkan risiko konflik, sebaiknya gunakan algoritma UUID yang sudah mapan seperti yang dijelaskan dalam RFC4122.

Jika Anda tidak menentukan ID, ID akan dibuat secara otomatis oleh server.

Perlu diketahui bahwa icalUID dan id tidak sama dan hanya salah satunya yang harus diberikan pada waktu pembuatan peristiwa. Satu perbedaan dalam semantiknya adalah dalam peristiwa berulang, semua kejadian dari satu peristiwa memiliki id yang berbeda sementara semuanya memiliki icalUID yang sama.

dapat ditulis
location string Lokasi geografis peristiwa sebagai teks bebas. Opsional. dapat ditulis
originalStartTime.date date Tanggal, dalam format "yyyy-mm-dd", jika ini adalah acara 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 tempat waktu ditentukan. (Diformat sebagai nama Database Zona Waktu IANA, misalnya "Eropa/Zurich".) Untuk acara berulang, kolom ini diperlukan dan menentukan zona waktu tempat pengulangan diperluas. Untuk satu peristiwa, kolom ini bersifat opsional dan menunjukkan zona waktu kustom untuk waktu mulai/akhir peristiwa. dapat ditulis
outOfOfficeProperties nested object Data peristiwa tidak di kantor. Digunakan jika eventType adalah outOfOffice. dapat ditulis
recurrence[] list Daftar baris RRULE, EXRULE, RDATE, dan EXDATE untuk peristiwa berulang, seperti yang ditentukan dalam RFC5545. Perhatikan bahwa baris DTSTART dan DTEND tidak diizinkan dalam kolom ini; waktu mulai dan berakhir peristiwa ditentukan di kolom start dan end. Kolom ini dihilangkan untuk satu peristiwa atau instance peristiwa berulang. dapat ditulis
reminders.overrides[] list Jika acara tidak menggunakan pengingat default, pengingat khusus untuk acara tersebut akan dicantumkan, atau, jika tidak ditetapkan, menunjukkan bahwa tidak ada pengingat yang ditetapkan 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.

Wajib diisi saat menambahkan pengingat.

dapat ditulis
reminders.overrides[].minutes integer Jumlah menit sebelum awal acara saat pengingat harus dipicu. Nilai yang valid antara 0 dan 40320 (4 minggu dalam menit).

Wajib diisi 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 HTTP atau HTTPS. dapat ditulis
start.date date Tanggal, dalam format "yyyy-mm-dd", jika ini adalah acara 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 tempat waktu ditentukan. (Diformat sebagai nama Database Zona Waktu IANA, misalnya "Eropa/Zurich".) Untuk acara berulang, kolom ini diperlukan dan menentukan zona waktu tempat pengulangan diperluas. Untuk satu peristiwa, kolom ini bersifat opsional dan menunjukkan zona waktu kustom untuk waktu mulai/akhir peristiwa. dapat ditulis
status string Status peristiwa. Opsional. Kemungkinan nilainya adalah:
  • "confirmed" - Peristiwa dikonfirmasi. Ini adalah status default.
  • "tentative" - Peristiwa dikonfirmasi sementara.
  • "cancelled" - Acara dibatalkan (dihapus). Metode list hanya menampilkan peristiwa yang dibatalkan pada sinkronisasi inkremental (saat syncToken atau updatedMin ditentukan) atau jika tanda showDeleted ditetapkan 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 boleh lagi ditampilkan kepada pengguna. Klien harus menyimpan peristiwa ini selama masa aktif peristiwa berulang induk.

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

    2. Semua peristiwa lain yang dibatalkan mewakili peristiwa yang dihapus. Klien harus menghapus salinan yang disinkronkan secara lokal. Peristiwa yang dibatalkan tersebut pada akhirnya akan hilang, jadi jangan mengandalkan peristiwa tersebut tersedia tanpa batas waktu.

      Peristiwa yang dihapus hanya dijamin memiliki kolom id yang terisi.

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

    Jika penyelenggara acara berubah (misalnya melalui operasi pindahan) dan penyelenggara asli tidak ada dalam daftar peserta, acara yang dibatalkan akan tetap ada dan hanya kolom id yang 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 memang memblokir waktu di kalender. Tindakan ini sama dengan menyetel Tampilkan saya sebagai ke Sibuk di UI Kalender.
  • "transparent" - Acara tidak memblokir waktu di kalender. Tindakan ini sama dengan menetapkan 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 ini bersifat publik dan detail acara dapat dilihat oleh semua pembaca kalender.
  • "private" - Acara bersifat pribadi dan hanya tamu acara yang dapat melihat detail acara.
  • "confidential" - Peristiwa bersifat pribadi. Nilai ini diberikan karena alasan kompatibilitas.
dapat ditulis
workingLocationProperties nested object Data peristiwa lokasi kerja. dapat ditulis
workingLocationProperties.customLocation object Jika ada, tentukan bahwa pengguna bekerja dari lokasi kustom. dapat ditulis
workingLocationProperties.customLocation.label string Label tambahan opsional untuk informasi tambahan. dapat ditulis
workingLocationProperties.homeOffice any value Jika ada, menentukan bahwa pengguna bekerja di rumah. dapat ditulis
workingLocationProperties.officeLocation object Jika ada, menentukan bahwa pengguna bekerja dari kantor. dapat ditulis
workingLocationProperties.officeLocation.buildingId string ID bangunan opsional. URL ini harus merujuk ke ID gedung di database Resource organisasi. dapat ditulis
workingLocationProperties.officeLocation.deskId string ID meja opsional. dapat ditulis
workingLocationProperties.officeLocation.floorId string ID lantai opsional. dapat ditulis
workingLocationProperties.officeLocation.floorSectionId string ID bagian lantai opsional. dapat ditulis
workingLocationProperties.officeLocation.label string Nama kantor yang ditampilkan di klien Web dan Seluler Kalender. Sebaiknya Anda mereferensikan nama gedung di database Fasilitas organisasi. dapat ditulis
workingLocationProperties.type string Jenis lokasi kerja. Kemungkinan nilainya adalah:
  • "homeOffice" - Pengguna bekerja di rumah.
  • "officeLocation" - Pengguna bekerja dari kantor.
  • "customLocation" - Pengguna bekerja dari lokasi kustom.
Detail apa pun ditentukan di sub-kolom dari nama yang ditentukan, tetapi kolom ini mungkin tidak ada jika kosong. Kolom lainnya akan diabaikan.

Wajib saat menambahkan properti lokasi kerja.

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.

// 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

Menggunakan library klien Python.

# 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

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

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

Menggunakan library klien.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);

Go

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

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

Menggunakan library klien 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);
});

Cobalah!

Gunakan API Explorer di bawah untuk memanggil metode ini pada data langsung dan melihat responsnya.