Jenis peristiwa

Halaman ini menjelaskan properti eventType, dan spesifikasi jenis acara yang tersedia di Google Calendar API.

Google Kalender memungkinkan pengguna membuat acara umum, serta acara yang dirancang untuk kasus penggunaan tertentu dan dengan properti kustom.

Jenis peristiwa dapat ditemukan di tempat berikut dalam API:

  • Semua peristiwa ditampilkan dengan eventType.
  • eventType harus ditetapkan saat membuat atau memperbarui resource acara. Jika tidak disetel, jenis 'default' akan digunakan.
  • eventTypes dapat ditentukan dalam panggilan Events:list untuk mencantumkan peristiwa dari jenis tertentu. Jika tidak ada jenis yang ditentukan, semua jenis peristiwa akan ditampilkan.
  • eventTypes dapat ditentukan dalam panggilan Events:watch untuk berlangganan info terbaru tentang peristiwa dari jenis tertentu. Jika tidak ada jenis yang ditentukan, permintaan akan menghasilkan langganan ke semua jenis peristiwa.

Acara default

Acara dengan jenis acara default dibuat dan digunakan sebagai salah satu resource utama Google Calendar API. Objek ini mendukung berbagai properti yang dapat digunakan untuk menyesuaikan peristiwa lebih lanjut.

Lihat Membuat acara untuk mulai menggunakan acara Google Kalender.

Tanggal lahir

Ulang tahun adalah acara khusus sepanjang hari dengan pengulangan tahunan.

Pengguna dapat membuat acara ulang tahun secara manual di Google Kalender. Selain itu, informasi ulang tahun disinkronkan dengan Google Kalender saat pengguna menambahkan orang beserta tanggal ulang tahun dan tanggal penting lainnya di Google Kontak. Ulang tahun pengguna juga disinkronkan ke Google Kalender dari profil Akun Google mereka.

Google Calendar API mendukung metode get, instances, dan list untuk membaca acara ulang tahun. eventTypes dapat ditetapkan ke 'birthday' untuk mencantumkan hanya acara ulang tahun. Jika tidak ada jenis yang ditentukan, ulang tahun akan dicantumkan bersama semua jenis acara lainnya.

Dalam objek Event yang ditampilkan, periksa kolom birthdayProperties untuk mengetahui detail selengkapnya tentang acara khusus ini. birthdayProperties memiliki kolom berikut:

  • type: Jenis acara khusus ini, apakah itu ulang tahun, hari jadi, atau tanggal penting lainnya.
  • customTypeName: Label yang ditentukan pengguna untuk acara khusus ini. Ini diisi jika type ditetapkan ke 'custom'.
  • contact: Nama resource kontak yang ditautkan ke acara khusus ini, jika ada. ID ini memiliki format 'people/c12345' dan dapat digunakan untuk mengambil detail kontak dari People API.

API memungkinkan pembuatan acara ulang tahun menggunakan metode insert dengan spesifikasi berikut:

  • eventType disetel ke 'birthday'.
  • Kolom start dan end harus menentukan acara sepanjang hari yang berlangsung tepat satu hari.
  • Nilai kolom visibility harus 'private'.
  • Nilai kolom transparency harus 'transparent'.
  • Harus memiliki pengulangan tahunan, yang berarti kolom recurrence harus 'RRULE:FREQ=YEARLY'. Acara ulang tahun yang jatuh pada 29 Februari harus memiliki aturan pengulangan berikut: 'RRULE:FREQ=YEARLY;BYMONTH=2;BYMONTHDAY=-1'.
  • Dapat memiliki colorId, summary dan reminders.
  • Dapat memiliki birthdayProperties. Jika ditentukan, type harus 'birthday', dan customTypeName serta contact harus kosong.
  • Tidak boleh memiliki properti acara lainnya.

API memungkinkan pembaruan colorId, summary, dan reminders acara ulang tahun menggunakan metode update dan patch. Kolom start dan end juga dapat diperbarui untuk mengubah tanggal acara. Dalam hal ini, nilai baru harus menentukan acara sepanjang hari yang berlangsung tepat satu hari. Detail waktu acara ulang tahun tidak dapat diperbarui jika acara ditautkan ke contact, atau type-nya adalah 'self'.

Google Calendar API tidak mengizinkan pembuatan acara ulang tahun dengan birthdayProperties kustom, atau memperbarui properti ini. Tanggal penting dapat diedit dengan People API, dan perubahan disinkronkan dengan Google Kalender. Demikian pula, pengguna dapat mengedit tanggal lahir mereka sendiri di profil Akun Google mereka, dan tanggal lahir tersebut disinkronkan dengan Google Kalender.

Permintaan yang mencoba membuat atau memperbarui tanggal lahir dengan cara yang tidak didukung akan gagal. Dalam hal ini, periksa pesan error untuk mengidentifikasi masalahnya.

API ini mendukung operasi import untuk acara ulang tahun; namun, acara akan diimpor sebagai acara default. Dengan kata lain, eventType akan menjadi 'default'.

API ini mendukung metode watch untuk berlangganan perubahan pada acara ulang tahun di Google Kalender. eventTypes dapat disetel ke 'birthday' untuk memantau update acara ulang tahun. Jika tidak ada jenis yang ditentukan, semua jenis acara, termasuk ulang tahun, akan di-subscribe.

Acara ulang tahun dapat dihapus menggunakan metode delete dari Google Calendar API. Menghapus acara ulang tahun dari Google Kalender tidak akan memengaruhi data di Google Kontak atau profil Akun Google.

Mengubah penyelenggara acara ulang tahun menggunakan metode move atau update tidak didukung.

Acara dari Gmail

Acara yang dibuat secara otomatis dari Gmail memiliki jenis acara 'fromGmail'.

Google Calendar API tidak mengizinkan pembuatan jenis acara ini menggunakan metode insert.

API memungkinkan pembaruan colorId, reminders, visibility, transparency, status, attendees, private dan shared properti yang diperluas menggunakan metode update dan patch.

API ini mendukung metode get dan list untuk membaca peristiwa dari Gmail. eventTypes dapat ditetapkan ke 'fromGmail' untuk mencantumkan hanya acara yang dihasilkan dari Gmail. Jika tidak ada jenis yang ditentukan, Acara dari Gmail akan dicantumkan bersama semua jenis acara lainnya.

API mendukung metode watch untuk berlangganan perubahan pada acara dari Gmail di Google Kalender. Jika tidak ada jenis yang ditentukan, semua jenis peristiwa, termasuk 'fromGmail', akan didaftarkan.

Acara dari Gmail dapat dihapus menggunakan metode delete dari Google Calendar API.

Mengubah penyelenggara acara dari Gmail menggunakan metode move atau update tidak didukung.

Waktu fokus, status tidak di kantor, dan lokasi kerja

Google Calendar API dapat digunakan untuk membuat dan mengelola acara yang menampilkan status pengguna Google Kalender.

Fitur ini hanya tersedia di kalender utama, dan untuk beberapa pengguna Google Kalender. Lihat Mengelola waktu fokus, tidak masuk kantor, dan acara lokasi kerja untuk mempelajari lebih lanjut.

Menjelajahi jenis acara di Google Apps Script

Google Apps Script adalah bahasa skrip cloud berbasis JavaScript yang memungkinkan Anda membuat aplikasi bisnis yang terintegrasi dengan Google Workspace. Skrip dikembangkan di editor kode berbasis browser, dan disimpan serta dijalankan di server Google. Lihat juga mulai cepat Google Apps Script untuk mulai menggunakan Apps Script guna mengirim permintaan ke Google Calendar API.

Petunjuk berikut menjelaskan cara membaca dan mengelola acara menggunakan Google Calendar API sebagai layanan lanjutan di Google Apps Script. Untuk mengetahui daftar lengkap resource dan metode Google Calendar API, lihat dokumentasi referensi.

Membuat dan menyiapkan skrip

  1. Buat skrip dengan membuka script.google.com/create.
  2. Di panel kiri di samping Layanan, klik Tambahkan layanan .
  3. Pilih Google Calendar API, lalu klik Tambahkan.
  4. Setelah diaktifkan, API akan muncul di panel kiri. Metode dan class yang tersedia di API dapat dicantumkan menggunakan kata kunci Calendar di editor.

(Opsional) Perbarui project Google Cloud

Setiap project Google Apps Script memiliki project Google Cloud yang terkait. Skrip Anda dapat menggunakan project default yang dibuat secara otomatis oleh Google Apps Script. Jika Anda ingin menggunakan project Google Cloud kustom, lihat Beralih ke project Cloud standar yang berbeda. Setelah menyetel project Google Cloud, pilih Editor di sisi kiri untuk kembali ke editor kode.

Menambahkan kode ke skrip

Contoh kode berikut menunjukkan cara mencantumkan, membaca, dan membuat peristiwa dengan nilai eventType yang berbeda.

  1. Tempelkan kode berikut ke editor kode.

    const CALENDAR_ID = 'CALENDAR_ID' || 'primary';
    
    /** Lists default events. */
    function listDefaultEvents() {
      listEvents('default');
    }
    
    /** Lists birthday events. */
    function listBirthdays() {
      listEvents('birthday');
    }
    
    /** Lists events from Gmail. */
    function listEventsFromGmail() {
      listEvents('fromGmail');
    }
    
    /**
      * Lists events with the given event type. If no type is specified, lists all events.
      * See https://developers.google.com/workspace/calendar/api/v3/reference/events/list
      */
    function listEvents(eventType = undefined) {
      // Query parameters for the list request.
      const optionalArgs = {
        eventTypes: eventType ? [eventType] : undefined,
        singleEvents: true,
        timeMax: '2024-07-30T00:00:00+01:00',
        timeMin: '2024-07-29T00:00:00+01:00',
      }
      try {
        var response = Calendar.Events.list(CALENDAR_ID, optionalArgs);
        response.items.forEach(event => console.log(event));
      } catch (exception) {
        console.log(exception.message);
      }
    }
    
    /**
      * Reads the event with the given eventId.
      * See https://developers.google.com/workspace/calendar/api/v3/reference/events/get
      */
    function readEvent() {
      try {
        var response = Calendar.Events.get(CALENDAR_ID, 'EVENT_ID');
        console.log(response);
      } catch (exception) {
        console.log(exception.message);
      }
    }
    
    /** Creates a default event. */
    function createDefaultEvent() {
      const event = {
        start: { dateTime: '2024-07-30T10:30:00+01:00'},
        end: { dateTime: '2024-07-30T12:30:00+01:00'},
        description: 'Created from Apps Script.',
        eventType: 'default',
        summary: 'Sample event',
      }
      createEvent(event);
    }
    
    /** Creates a birthday event. */
    function createBirthday() {
      const event = {
        start: { date: '2024-01-29' },
        end: { date: '2024-01-30' },
        eventType: 'birthday',
        recurrence: ["RRULE:FREQ=YEARLY"],
        summary: "My friend's birthday",
        transparency: "transparent",
        visibility: "private",
      }
      createEvent(event);
    }
    
    /**
      * Creates a Calendar event.
      * See https://developers.google.com/workspace/calendar/api/v3/reference/events/insert
      */
    function createEvent(event) {
    
      try {
        var response = Calendar.Events.insert(event, CALENDAR_ID);
        console.log(response);
      } catch (exception) {
        console.log(exception.message);
      }
    }
    

    Ganti kode berikut:

    • CALENDAR_ID: Alamat email kalender untuk mengambil dan membuat acara. Konstanta ini awalnya disetel ke 'primary', yang merupakan kata kunci untuk mengakses kalender utama pengguna yang login. Dengan mengubah nilai ini, Anda dapat membaca acara di kalender pengguna lain yang aksesnya Anda miliki.
    • EVENT_ID: ID acara. Anda dapat memanggil Events:list untuk mengambil ID acara.

Jalankan contoh kode

  1. Di atas editor kode, pilih fungsi yang akan dijalankan dari menu drop-down, lalu klik Run.
  2. Pada eksekusi pertama, Anda akan diminta untuk mengotorisasi akses. Tinjau dan izinkan Apps Script mengakses kalender Anda.
  3. Anda dapat memeriksa hasil eksekusi skrip di Execution Log yang muncul di bagian bawah jendela.