Skip to content

Getting Started

GitHub

Capgo의 AI 보조 설치를 사용하여 플러그인을 설치할 수 있습니다. AI 도구에 Capgo 기능을 추가하려면 다음 명령어를 사용하세요.

터미널 창
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

다음 명령어를 사용하여 다음 프롬프트를 입력하세요.

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

만약 Manual Setup을 선호한다면, 플러그인을 설치하기 위해 다음 명령어를 실행하고 아래에 플랫폼에 따라 설명된 지침을 따르세요.

터미널 창
npm install @capgo/capacitor-calendar
npx cap sync

앱에 필요한 사용 설명서를 추가하세요. 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 이상 버전에서는 쓰기 전용 및 전체 캘린더 접근 권한을 구분합니다. 사용자에게 알람 설명서를 제공하려면 Reminders API를 호출하는 앱만 포함하세요.

애플 참조: 최신 캘린더 접근 권한으로 마이그레이션.

앱에 필요한 캘린더 권한을 추가하세요. android/app/src/main/AndroidManifest.xml:

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

안드로이드 참조: 캘린더 제공자 사용자 권한.

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

일정만 추가하는 앱의 경우 사용 requestWriteOnlyCalendarAccess()Android 전용 읽기 흐름의 경우 사용 requestReadOnlyCalendarAccess().

날짜는 밀리초 단위의 Unix 타임스탬프입니다.

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

자연스러운 이벤트 편집기 열기

Section titled “자연스러운 이벤트 편집기 열기”
await CapacitorCalendar.createEventWithPrompt({
title: 'Planning session',
location: 'Office',
startDate: Date.now() + 24 * 60 * 60 * 1000,
endDate: Date.now() + 25 * 60 * 60 * 1000,
});

Android의 경우, 프롬프트 기반의 만들기 및 수정 호출은 반환 null. __CAPGO_KEEP_0__ 이벤트가 생성되면 생성된 이벤트 ID를 찾기 위해 나중에 이벤트 목록을 열 수 있습니다.

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() iOS에서 시스템 캘린더 픽커를 보여주고 싶을 때 사용할 수 있는 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',
});
}

알림 API는 iOS 전용입니다.

Capacitor 예시 앱은 권한 검사, 이벤트 생성, 네이티브 이벤트 프롬프트, 캘린더 목록, 이벤트 범위 목록을 포함합니다.

iOSAndroid
네이티브 캘린더 이벤트 생성의 iOS 데모네이티브 캘린더 이벤트 생성의 Android 데모

API 참조의 전체 내용은 패키지 README와 TypeScript 정의에서 유지됩니다.