패키지, 저장소 및 앱 카테고리 검색

패키지 상세v2.2.0

manage_calendar_events

Flutter 플러그인으로 Android 및 iOS 캘린더에서 이벤트(알림 포함)를 추가, 편집 및 제거하는 데 도움이 됩니다

AndroidiOS
30일 다운로드
209
좋아요
46
Pub 점수
150

패키지 설치

flutter pub add manage_calendar_events

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

안드로이드 및 iOS 기기에서 캘린더 이벤트를 원활하게 관리할 수 있는 플러터 플러그인입니다. 사용자는 사용자 정의 알림과 함께 이벤트를 추가, 편집 및 삭제할 수 있습니다. 패키지는 앱에 캘린더 기능을 통합하기 위한 간단한 API를 제공하여 스케줄링, 작업 관리 또는 알림 기반 애플리케이션에 적합합니다. 두 플랫폼 모두 지원하며 신뢰할 수 있는 성능을 위해 네이티브 캘린더 API를 활용합니다.

사용 사례

  • 예약 일정 조정
  • 작업 알림 만들기
  • 이벤트 기획 앱 만들기
  • 생산성 도구와의 통합
  • 반복 이벤트 관리

주요 기능

  • 캘린더 이벤트 추가, 편집 및 삭제
  • 이벤트 알림 지원
  • 크로스 플랫폼(안드로이드 및 iOS)
  • 간단하고 직관적인 API
  • 네이티브 캘린더 통합

적합한 대상

  • 생산성 앱
  • 예약 스케줄러
  • 작업 관리 도구
  • 기억상기 기반 애플리케이션
  • 이벤트 기반 워크플로우

고려 사항

  • 캘린더에 액세스하려면 사용자 권한이 필요합니다
  • Android 및 iOS 플랫폼에만 제한됨
  • 플랫폼별 오류 사례를 처리해야 할 수 있습니다
  • 권한은 런타임 시에 요청해야 합니다
  • 이벤트 데이터는 플랫폼 간에 약간 다를 수 있습니다

원본 README

연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.

manage_calendar_events

pub package pub points pub likes License: MIT

A Flutter plugin for reading, creating, updating, and deleting device calendar events — with reminders and attendees — on Android and iOS.

Platform support

Android iOS
✓ ✓

Features

  • List all calendars available on the device, including whether each one is read-only or local
  • Create and delete local (non-synced) calendars
  • Read events from a calendar — all events, a date range, or a whole week/month
  • Create and update events: title, description, location, URL, all-day flag, and a reminder
  • Delete events
  • Add, update, and delete reminders on an existing event
  • Add, list, and remove attendees on an event

Getting started

1. Add the dependency
dependencies:
  manage_calendar_events: ^2.1.2
2. Android setup

Add the calendar permissions to android/app/src/main/AndroidManifest.xml:

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

Add the calendar usage description(s) to ios/Runner/Info.plist:

<key>NSCalendarsUsageDescription</key>
<string>This app needs calendar access to manage your events.</string>
<key>NSCalendarsFullAccessUsageDescription</key>
<string>This app needs calendar access to manage your events.</string>

NSCalendarsFullAccessUsageDescription is required on iOS 17+; NSCalendarsUsageDescription covers earlier versions.

Usage

import 'package:manage_calendar_events/manage_calendar_events.dart';

final _calendarPlugin = CalendarPlugin();
Request permissions
final granted = await _calendarPlugin.hasPermissions() ?? false;
if (!granted) {
  await _calendarPlugin.requestPermissions();
}
List calendars
final calendars = await _calendarPlugin.getCalendars();
final calendar = calendars!.first;
Create or delete a local calendar
final calendarId = await _calendarPlugin.createCalendar(
  calendarName: 'My App Calendar',
  color: Colors.blue,
);

// Only ever succeeds for a calendar created this way - it can't delete a
// user's real synced Google/iCloud calendar.
await _calendarPlugin.deleteCalendar(calendarId: calendarId!);
Read events
// Every event on a calendar
final events = await _calendarPlugin.getEvents(calendarId: calendar.id!);

// Events in an explicit date range
final events = await _calendarPlugin.getEventsByDateRange(
  calendarId: calendar.id!,
  startDate: DateTime.now(),
  endDate: DateTime.now().add(const Duration(days: 30)),
);

// Shortcuts for the current week / month
final weekEvents = await _calendarPlugin.getEventsByWeek(
  calendarId: calendar.id!,
  findDate: DateTime.now(),
);
final monthEvents = await _calendarPlugin.getEventsByMonth(
  calendarId: calendar.id!,
  findDate: DateTime.now(),
);
Create an event
final event = CalendarEvent(
  title: 'Team standup',
  description: 'Daily sync',
  startDate: DateTime.now(),
  endDate: DateTime.now().add(const Duration(hours: 1)),
  reminder: Reminder(minutes: 15), // remind 15 minutes before the event
);

final eventId = await _calendarPlugin.createEvent(
  calendarId: calendar.id!,
  event: event,
);
Update or delete an event
event
  ..eventId = eventId
  ..title = 'Team standup (moved)';
await _calendarPlugin.updateEvent(calendarId: calendar.id!, event: event);

await _calendarPlugin.deleteEvent(calendarId: calendar.id!, eventId: eventId!);
Reminders
await _calendarPlugin.addReminder(
  calendarId: calendar.id!,
  eventId: eventId!,
  minutes: 30,
);
await _calendarPlugin.updateReminder(
  calendarId: calendar.id!,
  eventId: eventId!,
  minutes: 10,
);
await _calendarPlugin.deleteReminder(eventId: eventId!);
Attendees
await _calendarPlugin.addAttendees(
  eventId: eventId!,
  newAttendees: [
    Attendee(name: 'Jane Doe', emailAddress: 'jane@example.com'),
  ],
);

final attendees = await _calendarPlugin.getAttendees(eventId: eventId!);

A full working app that exercises the whole API is in example/.

Contributing

Issues and pull requests are welcome on GitHub.

Author

Maintained by Lakshmanaprabhu R.

License

MIT — see LICENSE.

카테고리

소스 저장소

이 패키지를 사용하는 프로젝트

아직 데이터가 없습니다.