Get access to over 100 FireMonkey cross platform samples for Android, IOS, OSX, Windows, and Linux!

AndroidAppmethodCode SnippetComponentDelphiDemoFiremonkey

Access Calendar Events And Reminders In Delphi XE6 Firemonkey On Android

| Delphi 11 10 XE8 XE7 XE Seattle Berlin Tokyo Rio Firemonkey Delphi Android Delphi IOS

Delphi XE6 Firemonkey Android Calendar Events Manager | Delphi 11 10 XE8 XE7 XE Seattle Berlin Tokyo Rio Firemonkey Delphi Android Delphi IOSDeveloper Khalid N. contributed an Android calendar event manager class and demo for Delphi XE6 Firemonkey. The class wraps the Android calendar provider which you can find out more about here. It uses the JNI to access the information and is a good example of how to use the Content Resolver in Delphi. The content resolver is also used for accessing other things like the device contacts. In order to access the calendar you need to have read and write permissions set in your Android manifest (android.permission.READ_CALENDAR and android.permission.WRITE_CALENDAR). It has functions to get the list of available calendars, add a reminder, update a reminder, delete a reminder, and set the completed state of a reminder. The code should work with a few minor changes in Delphi XE5 and AppMethod. The content Here is a sample function from the code where it demonstrates how to use the Content Resolver:
function TCalendarEventsManager.IsAppCalendarExist: integer;
wValues : TJavaObjectArray<JString>;
wArgs : TJavaObjectArray<JString>;
wCursor : JCursor;
wFilter : JString;
Result := -1;
wValues := TJavaObjectArray<JString>.Create(2); //Extracting only calendar name
wValues[0] := StringToJString('_id');
wValues[1] := StringToJString('account_name');
wFilter := StringToJString('account_type = ? AND account_name = ?'); //filter
wArgs := TJavaObjectArray<JString>.Create(2); // Arguments to filter calendars list
wArgs[0] := StringToJString('LOCAL');
wArgs[1] := StringToJString(_App_Calendar_Name);
wCursor := fContentResolver.query(StrToJURI('content://'),wValues,wfilter,wArgs,nil);
if wCursor.moveToFirst then
Result := wCursor.getLong(0);
On E:Exception do
Raise Exception.create('[TCalendarEventsManager.IfAppCalendarExist] : '+E.message);

Download the Calendar Event Manager demo for Delphi XE6 Firemonkey.

Have Delphi Firemonkey questions? Ask and get answers on StackOverflow.

Related posts

AutoBlogAI: FireMonkey Client To Leverage LLMs And Generative AI For Blogging


Unleashing Creativity With Song Writer AI: A Deep Dive


How To Build Stable Diffusion Text To Image Prompts


FireMonkey 10.4.2 Features Updated iOS 14, Android 11, And macOS 11 Support Plus Hundreds Of Fixes

Sign up for our Newsletter and
stay informed


  • Pingback: Anonymous

Leave a Reply