Saltare al contenuto

Riferimento al Calendario

GitHub

È possibile utilizzare la nostra configurazione assistita dall'IA per installare il plugin. Aggiungi le Capgo abilitazioni al tuo strumento di AI utilizzando il seguente comando:

Fenestra del terminale
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

Usa poi la seguente richiesta:

Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-calendar` plugin in my project.

Se preferisci l'installazione manuale, installa il plugin eseguendo i seguenti comandi e segui le istruzioni specifiche per la piattaforma riportate di seguito:

Finestra del terminale
npm install @capgo/capacitor-calendar
npx cap sync

Aggiungi le descrizioni di utilizzo che il tuo app necessita di 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 e versioni successive distinguono tra accesso scritto e accesso completo al calendario. Includi le descrizioni di utilizzo delle reminder solo se il tuo app chiama le API dei Reminder.

Riferimento di Apple: Migrazione alle ultime autorizzazioni del calendario.

Aggiungi le autorizzazioni del calendario che il tuo app necessita di android/app/src/main/AndroidManifest.xml:

<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />

Riferimento Android: Permessi utente del Provider di calendario.

import { CapacitorCalendar } from '@capgo/capacitor-calendar';
const permission = await CapacitorCalendar.requestFullCalendarAccess();
if (permission.result !== 'granted') {
throw new Error('Calendar permission was not granted');
}

Per gli app che aggiungono solo eventi, utilizza requestWriteOnlyCalendarAccess(). Per flussi di lettura Android esclusivi, utilizza requestReadOnlyCalendarAccess().

Le date sono timestamp Unix in millisecondi.

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);
await CapacitorCalendar.createEventWithPrompt({
title: 'Planning session',
location: 'Office',
startDate: Date.now() + 24 * 60 * 60 * 1000,
endDate: Date.now() + 25 * 60 * 60 * 1000,
});

Su Android, le chiamate di creazione e modifica basate sulla richiesta restituiscono null. Elenco gli eventi successivi se desideri trovare l'ID dell'evento creato.

const now = Date.now();
const oneWeekFromNow = now + 7 * 24 * 60 * 60 * 1000;
const { result: events } = await CapacitorCalendar.listEventsInRange({
from: now,
to: oneWeekFromNow,
});
const { result: calendars } = await CapacitorCalendar.listCalendars();
const { result: defaultCalendar } = await CapacitorCalendar.getDefaultCalendar();
const calendarId = defaultCalendar?.id ?? calendars[0]?.id;

selectCalendarsWithPrompt() è disponibile su iOS quando desideri visualizzare il picker del calendario del sistema.

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',
});
}

Gli API degli avvisi sono disponibili solo su iOS.

Il repository include un Capacitor esempio di app con controlli di autorizzazione, creazione di eventi, sollecitazioni di eventi native, elenco dei calendari e elenco degli eventi di intervallo.

iOSAndroid
Demo di calendario nativo iOS per la creazione di eventiDemo di calendario nativo Android per la creazione di eventi

La documentazione completa di riferimento a API è mantenuta nel file README e nelle definizioni TypeScript: