메뉴로 바로가기

시작하기

GitHub

Capgo의 AI-Assisted Setup을 사용하여 플러그인을 설치할 수 있습니다. 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를 호출하는 앱만 사용하세요.

Apple 참조: 최신 캘린더 접근 수준으로 마이그레이션하는 방법.

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

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

Android 참조: 일정 제공자 사용 권한.

일정 접근 요청

'일정 접근 요청' 제목
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);

네이티브 이벤트 편집기를 열기

'네이티브 이벤트 편집기를 열기' 제목
await CapacitorCalendar.createEventWithPrompt({
title: 'Planning session',
location: 'Office',
startDate: Date.now() + 24 * 60 * 60 * 1000,
endDate: Date.now() + 25 * 60 * 60 * 1000,
});

안드로이드에서 prompt-based create와 modify 호출은 null__CAPGO_KEEP_1__

미래의 이벤트를 찾기 위해 생성된 이벤트 ID를 찾으려면 나중에 이벤트 목록을 표시합니다.

__CAPGO_KEEP_2__
const now = Date.now();
const oneWeekFromNow = now + 7 * 24 * 60 * 60 * 1000;
const { result: events } = await CapacitorCalendar.listEventsInRange({
from: now,
to: oneWeekFromNow,
});

__CAPGO_KEEP_3__

__CAPGO_KEEP_4__
const { result: calendars } = await CapacitorCalendar.listCalendars();
const { result: defaultCalendar } = await CapacitorCalendar.getDefaultCalendar();
const calendarId = defaultCalendar?.id ?? calendars[0]?.id;

selectCalendarsWithPrompt() __CAPGO_KEEP_6__

__CAPGO_KEEP_7__

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

iOS에서만 사용할 수 있는 Reminder API입니다.

Capacitor 예시 앱에는 권한 확인, 이벤트 생성, 네이티브 이벤트提示, 캘린더 목록, 이벤트 범위 목록이 포함되어 있습니다.

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

API 참조는 패키지 README 및 TypeScript 정의에서 완전하게 유지됩니다.