device_calendar 1.0.0+2

  • Readme
  • Changelog
  • Example
  • Installing
  • 96

Device Calendar Plugin #

pub package Build Status

A cross platform plugin for modifying calendars on the user's device.

Features #

  • Ability to request permissions to modify calendars on the user's device
  • Ability to check if permissions to modify the calendars on the user's device have been granted
  • Retrieve calendars on the user's device
  • Retrieve events associated with a calendar
  • Ability to add, update or delete events from a calendar
  • Ability to set up recurring events (NOTE: deleting a recurring event will currently delete all instances of it)
  • Ability to modify attendees for an event (NOTE: certain information is read-only like attendance status. Please refer to API docs)
  • Ability to setup reminders for an event

NOTE: there is a known issue where it looks as though specifying weeksOfTheYear and setPositions for recurrence rules doesn't appear to have an effect. Also note that the example app only provides entering simple scenarios e.g. it may be possible to specify multiple months that a yearly event should occur on but the example app will only allow specifying a single month.

Android Integration #

The following will need to be added to the manifest file for your application to indicate permissions to modify calendars a needed

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

If you have Proguard enabled, you may need to add the following to your configuration (thanks to Britannio Jarrett who posted about it here)

-keep class com.builttoroam.devicecalendar.** { *; }

IMPORTANT: Since version 0.1.0, this version has migrated to use AndroidX instead of the deprecated Android support libraries. When using version 0.10.0 and onwards for this plugin, please ensure your application has been migrated following the guide here

iOS Integration #

For iOS 10 support, you'll need to modify the Info.plist to add the following key/value pair

<key>NSCalendarsUsageDescription</key>
<string>INSERT_REASON_HERE</string>

Note that on iOS, this is a Swift plugin. There is a known issue being tracked here by the Flutter team, where adding a plugin developed in Swift to an Objective-C project causes problems. If you run into such issues, please look at the suggested workarounds there.

1.0.0+2 30th August 2019 #

  • Fix home page URL

1.0.0+1 30th August 2019 #

  • Add integration tests to example app. Note that this is more for internal use at the moment as it currently requires an Android device with a calendar that can be written to and assumes that the tests are executed from a Mac.

1.0.0 28th August 2019 #

  • Support for more advanced recurrence rules
  • Update README to include information about using ProGuard for issue 99
  • Made event title optional to fix issue 72
  • Return information about the organiser of the event as per issue 73
  • Return attendance status of attendees and if they're required for an event. These are details are different across iOS and Android and so are returned within platform-specific objects
  • Ability to modify attendees for an event
  • Ability to create reminders for events expressed in minutes before the event starts
  • BREAKING CHANGE retrieveCalendars and retrieveEvents now return lists that cannot be modified (UnmodifiableListView) to address part of issue 113

0.2.2 19th August 2019 #

  • Add support for specifying the location of an event. Thanks to oli06 and zemanux for submitting PRs to add the functionality to iOS and Android respectively

0.2.1+1 5th August 2019 #

  • Fixing date in changelog for version 0.2.1

0.2.1 5th August 2019 #

  • [Android] Fixes issue 101 where plugin results in a crash with headless execution

0.2.0 30th July 2019 #

  • Add initial support for recurring events. Note that currently editing or deleting a recurring event will affect all instances of it. Future releases will look at supporting more advanced recurrence rules
  • BREAKING CHANGE [Android] Updated to use Gradle plugin to 3.4.2, Gradle wrapper to 5.1.1, Kotlin version to 1.3.41 and bumped Android dependencies
  • Remove old example app to avoid confusion

0.1.3 5th July 2019 #

  • [iOS] Fixes issue 94 that occurred on 32-bit iOS devices around date of events. Thanks to the PR submitted by duzenko

0.1.2+2 28th May 2019 #

  • Non-functional release. Minor refactoring in Android code to address issues found in Codefactor and fix build status badge in README

0.1.2+1 17th May 2019 #

  • Non-functional release. Fixed formatting in changelog and code comments
  • Added more info about potential issues in consuming the plugin within an Objective-C project

0.1.2 - 16th May 2019 #

  • [Android] An updated fix to address issue 79, thanks to the PR submitted by Gerry High

0.1.1 - 1st March 2019 #

  • Fixed issue 79 where on Android, the plugin was indicating that it was handling permissions that it shouldn't have

0.1.0 - 26th February 2019 #

  • BREAKING CHANGE Migrated to the plugin to use AndroidX instead of the deprecated Android support libraries. Please ensure you have migrated your application following the guide here
  • BREAKING CHANGE Updated Kotlin to version 1.3.21
  • BREAKING CHANGE Updated Gradle plugin to 3.3.1 and distribution to 4.10.2

0.0.8 - 26th February 2019 #

  • This was a breaking change that should've been incremented as minor version update instead of a patch version update. See changelog for 0.1.0 for the details of this update

0.0.7 - 16th November 2018 #

  • Fixes issue #67 and #68. Thanks to PR submitted by huzhiren.

0.0.6 - 18th June 2018 #

  • [iOS] Fix an issue when adding/updating an event with a null description

0.0.5 - 14th June 2018 #

  • [Android] Fixed an issue with retrieving events by id only

0.0.4 - 12th June 2018 #

  • Reordering changelog
  • Creating new example for the Pub Dart Example tab
  • Moving existing example to the example_app GitHub folder

0.0.2 - 0.0.3 - 7th June 2018 #

  • Fixing incorrect Travis build links

0.0.1 - 7th June 2018 #

  • Ability to retrieve device calendars
  • CRUD operations on calendar events

example/README.md

device_calendar_example #

Demonstrates how to use the device_calendar plugin.

Getting Started #

For help getting started with Flutter, view our online documentation.

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  device_calendar: ^1.0.0+2

2. Install it

You can install packages from the command line:

with Flutter:


$ flutter pub get

Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:device_calendar/device_calendar.dart';
  
Popularity:
Describes how popular the package is relative to other packages. [more]
91
Health:
Code health derived from static analysis. [more]
100
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
100
Overall:
Weighted score of the above. [more]
96
Learn more about scoring.

We analyzed this package on Nov 15, 2019, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.6.0
  • pana: 0.12.21
  • Flutter: 1.9.1+hotfix.6

Platforms

Detected platforms: Flutter

References Flutter, and has no conflicting libraries.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.2.2 <3.0.0
flutter 0.0.0
Transitive dependencies
collection 1.14.11 1.14.12
meta 1.1.7 1.1.8
sky_engine 0.0.99
typed_data 1.1.6
vector_math 2.0.8
Dev dependencies
flutter_test