Aller directement au contenu

Démarrage

GitHub

Vous pouvez utiliser notre configuration assistée par l'IA pour installer le plugin. Ajoutez les Capgo compétences à votre outil IA à l'aide de la commande suivante :

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

Ensuite, utilisez la prompt suivante :

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

Si vous préférez la configuration manuelle, installez le plugin en exécutant les commandes suivantes et suivez les instructions spécifiques à la plateforme ci-dessous :

Fenêtre de terminal
npm install @capgo/capacitor-calendar
npx cap sync

Ajoutez les descriptions d'utilisation que votre application nécessite à 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 et versions ultérieures distinguent entre accès écriture uniquement et accès calendrier complet. Incluez uniquement les descriptions d'utilisation des rappels si votre application appelle les API des rappels.

Référence Apple : Migration vers les niveaux d'accès calendrier les plus récents.

Ajoutez les autorisations de calendrier dont votre application a besoin android/app/src/main/AndroidManifest.xml:

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

Référence Android : Autorisations de l'utilisateur du fournisseur de calendrier.

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

Pour les applications qui n'ajoutent que des événements, utilisez requestWriteOnlyCalendarAccess(). Pour les flux de lecture Android uniquement, utilisez requestReadOnlyCalendarAccess().

Les dates sont des timestamps Unix en millisecondes.

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

Sur Android, les appels de création et de modification basés sur la prompt renvoient null. Liste les événements ultérieurs si vous avez besoin de trouver l'ID de l'événement créé.

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() Il est disponible sur iOS lorsque vous souhaitez afficher le sélecteur de calendrier système.

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

Les API de rappel sont uniquement disponibles sur iOS.

Le dépôt inclut un exemple d'application Capacitor avec des vérifications d'autorisation, la création d'événements, des invitations d'événements natives, la liste des calendriers et la liste des plages d'événements.

iOSAndroid
Démonstration iOS de création d'événements de calendrier nativesDemonstration Android de création d'événements de calendrier natifs

La référence complète API est maintenue dans le fichier README et les définitions TypeScript :