搜尋套件、儲存庫與 APP 分類

套件詳情v2.2.0

manage_calendar_events

一個 Flutter 插件,可幫助您在您的(Android 和 iOS)日曆中新增、編輯和移除事件(含提醒)

AndroidiOS
近 30 天下載
209
喜歡數
46
Pub 分數
150

安裝套件

flutter pub add manage_calendar_events

套件介紹

根據套件公開資料產生的選型評估,僅供參考。

一個 Flutter 插件,可於 Android 與 iOS 裝置上實現日曆事件的無縫管理。它允許使用者新增、編輯與移除事件,並支援自訂提醒。該套件提供簡單的 API,方便將日曆功能整合至應用程式中,非常適合用於排程、任務管理或提醒類應用程式。它支援兩個平台,並利用原生日曆 API 以確保穩定效能。

適用情境

  • 安排預約
  • 建立任務提醒
  • 建構活動規劃應用
  • 與生產力工具整合
  • 管理重複事件

主要特色

  • 新增、編輯和刪除日曆事件
  • 支援事件提醒
  • 跨平台(Android & 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.

所屬分類

原始碼儲存庫

使用此套件的專案

暫無相關資料。