Panduan Memulai
Salin prompt setup yang berisi langkah install dan panduan markdown lengkap untuk plugin ini.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-calendar`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/calendar/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
Anda bisa menggunakan AI-Assisted Setup kami untuk menginstal plugin ini. Tambahkan skill Capgo ke tool AI Anda dengan command berikut:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsLalu gunakan prompt berikut:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-calendar` plugin in my project.Jika Anda lebih memilih Manual Setup, instal plugin dengan menjalankan perintah berikut dan ikuti petunjuk khusus platform di bawah ini:
bun add @capgo/capacitor-calendarbunx cap syncMulai cepat
Bagian berjudul “Mulai cepat”import { CapacitorCalendar } from '@capgo/capacitor-calendar';
await CapacitorCalendar.requestFullCalendarAccess();await CapacitorCalendar.createEvent({ title: 'Site visit', startDate: Date.now(), endDate: Date.now() + 60 * 60 * 1000, location: 'Warehouse 4',});Contoh: alur editor sistem
Bagian berjudul “Contoh: alur editor sistem”await CapacitorCalendar.createEventWithPrompt({ title: 'Team sync', startDate: Date.now() + 86400000, endDate: Date.now() + 90000000,});Kesalahan umum
Bagian berjudul “Kesalahan umum”- Level akses iOS: pilih helper read only, write only, atau full access yang sesuai fitur Anda, jangan meminta akses berlebih.
- Reminders hanya untuk iOS: lindungi API Reminders saat
Capacitor.getPlatform() === 'ios'. - Zona waktu: kirim offset eksplisit atau milidetik UTC yang konsisten dengan backend Anda.
Setup iOS
Bagian berjudul “iOS Setup”Tambahkan deskripsi penggunaan yang diperlukan aplikasi Anda ke ios/App/App/Info.plist:
<key>NSCalendarsUsageDescription</key><string>This app needs calendar access.</string><key>NSCalendarsWriteOnlyAccessUsageDescription</key><string>This app needs permission to add calendar events.</string><key>NSCalendarsFullAccessUsageDescription</key><string>This app needs permission to read and manage calendar events.</string><key>NSRemindersUsageDescription</key><string>This app needs reminders access.</string><key>NSRemindersFullAccessUsageDescription</key><string>This app needs permission to read and manage reminders.</string>iOS 17 ke atas membedakan antara akses kalender write-only dan akses penuh. Sertakan deskripsi penggunaan reminder hanya jika aplikasi Anda memanggil Reminders APIs.
Referensi Apple: Migrasi ke level akses Calendar terbaru.
Setup Android
Bagian berjudul “Android Setup”Tambahkan izin kalender yang dibutuhkan aplikasi Anda ke android/app/src/main/AndroidManifest.xml:
<uses-permission android:name="android.permission.READ_CALENDAR" /><uses-permission android:name="android.permission.WRITE_CALENDAR" />Referensi Android: Izin pengguna Calendar Provider.
Minta Akses Kalender
Bagian berjudul “Request Calendar Access”import { CapacitorCalendar } from '@capgo/capacitor-calendar';
const permission = await CapacitorCalendar.requestFullCalendarAccess();
if (permission.result !== 'granted') { throw new Error('Calendar permission was not granted');}Untuk aplikasi yang hanya menambah event, gunakan requestWriteOnlyCalendarAccess(). Untuk alur baca khusus Android, gunakan requestReadOnlyCalendarAccess().
Buat Sebuah Event
Bagian berjudul “Buat Event”Tanggal menggunakan Unix timestamp dalam milidetik.
import { CapacitorCalendar } from '@capgo/capacitor-calendar';
const startDate = Date.now() + 60 * 60 * 1000;const endDate = startDate + 60 * 60 * 1000;
const { id } = await CapacitorCalendar.createEvent({ title: 'Product review', location: 'Capgo', startDate, endDate, description: 'Created with @capgo/capacitor-calendar',});
console.log('Created event', id);Buka Native Event Editor
Bagian berjudul “Buka Native Event Editor”await CapacitorCalendar.createEventWithPrompt({ title: 'Planning session', location: 'Office', startDate: Date.now() + 24 * 60 * 60 * 1000, endDate: Date.now() + 25 * 60 * 60 * 1000,});Di Android, pemanggilan create dan modify berbasis prompt mengembalikan null. List event setelahnya jika Anda perlu mencari ID event yang dibuat.
Daftar Event Mendatang
Bagian berjudul “Daftar Event Mendatang”const now = Date.now();const oneWeekFromNow = now + 7 * 24 * 60 * 60 * 1000;
const { result: events } = await CapacitorCalendar.listEventsInRange({ from: now, to: oneWeekFromNow,});Pilih Kalender
Bagian berjudul “Pilih Kalender”const { result: calendars } = await CapacitorCalendar.listCalendars();const { result: defaultCalendar } = await CapacitorCalendar.getDefaultCalendar();
const calendarId = defaultCalendar?.id ?? calendars[0]?.id;selectCalendarsWithPrompt() tersedia di iOS saat Anda ingin menampilkan picker kalender sistem.
Buat Reminder iOS
Bagian berjudul “Buat Reminder iOS”const permission = await CapacitorCalendar.requestFullRemindersAccess();
if (permission.result === 'granted') { await CapacitorCalendar.createReminder({ title: 'Send launch notes', dueDate: Date.now() + 2 * 24 * 60 * 60 * 1000, notes: 'Created with @capgo/capacitor-calendar', });}Reminder API hanya tersedia di iOS.
Aplikasi Contoh
Bagian berjudul “Example App”Repositori ini menyertakan example app Capacitor dengan pengecekan izin, pembuatan event, prompt event native, listing kalender, dan listing rentang event.
| iOS | Android |
|---|---|
![]() | ![]() |
Referensi API
Bagian berjudul “Referensi API”Referensi lengkap API tersedia di README package dan definisi TypeScript:

