Passer à la navigation

Prise en main

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

Ajoutez les descriptions d'utilisation dont votre application a besoin 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>

Depuis iOS 17 et plus récent, la distinction est faite entre l'accès écriture uniquement et l'accès complet au calendrier. Incluez uniquement les descriptions d'utilisation des rappels si votre application appelle les API des rappels.

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

Ajoutez les autorisations 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 : Permissions des utilisateurs 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 ajoutent uniquement 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 des invitations retournent nullLister les événements ensuite 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 une application d&#39;exemple Capacitor avec des contrôles d&#39;autorisation, la création d&#39;événements, des invitations d&#39;événements natives, la liste des calendriers et la liste des plages d&#39;événements.

iOSAndroid
Démonstration iOS de la création d&#39;événements de calendrier nativesDémonstration Android de la création d&#39;événements de calendrier natives

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