Pular al contenido

Empezar

GitHub

Puede utilizar nuestra configuración asistida por inteligencia artificial para instalar el complemento. Agregue las Capgo habilidades a su herramienta de inteligencia artificial utilizando el siguiente comando:

Ventana de terminal
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

Luego utilice el siguiente prompt:

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

Si prefiere la configuración manual, instale el complemento ejecutando los siguientes comandos y siguiendo las instrucciones específicas del plataforma a continuación:

Ventana de terminal
npm install @capgo/capacitor-calendar
npx cap sync

Agregue las descripciones de uso que su aplicación necesita 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 y posteriores distinguen entre acceso solo de escritura y acceso completo al calendario. Solo incluya descripciones de uso de recordatorios si su aplicación llama a las API de Recordatorios.

Referencia de Apple: Migrar a los niveles de acceso de calendario más recientes.

Agregue las permisos de calendario que su aplicación necesita android/app/src/main/AndroidManifest.xml:

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

Referencia de Android: Permisos del proveedor de calendario.

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

Para aplicaciones que solo agregan eventos, utilice requestWriteOnlyCalendarAccess() Para flujos de lectura solo para Android, utilice requestReadOnlyCalendarAccess().

Las fechas son timestamps de Unix en milisegundos.

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

En Android, las llamadas de creación y modificación basadas en solicitudes devuelven nullSi necesitas encontrar el ID del evento creado, lista los eventos después.

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() Está disponible en iOS cuando deseas mostrar el selector de 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',
});
}

Las APIs de recordatorio son solo para iOS.

El repositorio incluye una Capacitor app de ejemplo con comprobaciones de permisos, creación de eventos, promt de eventos nativos, lista de calendario y lista de rangos de eventos.

iOSAndroid
Demostración de iOS de creación de eventos de calendario nativosDemostración de Android de creación de eventos de calendario nativos

La referencia completa de API se mantiene en el archivo README del paquete y definiciones de TypeScript: