How to get a list of device calendar events in an Android device?

I want calendar events to be the latest sevendays on Android devices? I am a newbie, so tell me step by step the solution for this ..! Only get and read the calendar do not update and delete. Does anyone help me? I used the code below!

public class Example { public static void readCalendar(Context context) { ContentResolver contentResolver = context.getContentResolver(); // Fetch a list of all calendars synced with the device, their display names and whether the // user has them selected for display. final Cursor cursor = contentResolver.query(Uri.parse("content://calendar/calendars"), (new String[] { "_id", "displayName", "selected" }), null, null, null); // For a full list of available columns see http://tinyurl.com/yfbg76w HashSet<String> calendarIds = new HashSet<String>(); while (cursor.moveToNext()) { final String _id = cursor.getString(0); final String displayName = cursor.getString(1); final Boolean selected = !cursor.getString(2).equals("0"); Log.v("anim","Id: " + _id + " Display Name: " + displayName + " Selected: " + selected); calendarIds.add(_id); } // For each calendar, display all the events from the previous week to the end of next week. for (String id : calendarIds) { Uri.Builder builder = Uri.parse("content://calendar/instances/when").buildUpon(); long now = new Date().getTime(); ContentUris.appendId(builder, now - DateUtils.WEEK_IN_MILLIS); ContentUris.appendId(builder, now + DateUtils.WEEK_IN_MILLIS); Cursor eventCursor = contentResolver.query(builder.build(), new String[] { "title", "begin", "end", "allDay"}, "Calendars._id=" + id, null, "startDay ASC, startMinute ASC"); // For a full list of available columns see http://tinyurl.com/yfbg76w while (eventCursor.moveToNext()) { final String title = eventCursor.getString(0); final Date begin = new Date(eventCursor.getLong(1)); final Date end = new Date(eventCursor.getLong(2)); final Boolean allDay = !eventCursor.getString(3).equals("0"); Log.v("anim","Title: " + title + " Begin: " + begin + " End: " + end + " All Day: " + allDay); } } } } 

I got a null-pointerException.

+8
android events calendar
source share
2 answers

My problem is resolved and I use below code -

 public class Utility { public static ArrayList<String> nameOfEvent = new ArrayList<String>(); public static ArrayList<String> startDates = new ArrayList<String>(); public static ArrayList<String> endDates = new ArrayList<String>(); public static ArrayList<String> descriptions = new ArrayList<String>(); public static ArrayList<String> readCalendarEvent(Context context) { Cursor cursor = context.getContentResolver() .query( Uri.parse("content://com.android.calendar/events"), new String[] { "calendar_id", "title", "description", "dtstart", "dtend", "eventLocation" }, null, null, null); cursor.moveToFirst(); // fetching calendars name String CNames[] = new String[cursor.getCount()]; // fetching calendars id nameOfEvent.clear(); startDates.clear(); endDates.clear(); descriptions.clear(); for (int i = 0; i < CNames.length; i++) { nameOfEvent.add(cursor.getString(1)); startDates.add(getDate(Long.parseLong(cursor.getString(3)))); endDates.add(getDate(Long.parseLong(cursor.getString(4)))); descriptions.add(cursor.getString(2)); CNames[i] = cursor.getString(1); cursor.moveToNext(); } return nameOfEvent; } public static String getDate(long milliSeconds) { SimpleDateFormat formatter = new SimpleDateFormat( "dd/MM/yyyy hh:mm:ss a"); Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(milliSeconds); return formatter.format(calendar.getTime()); } 
+33
source share

Many thanks! However, you received all events from only one Calendar, for example, your main Google account, how can you receive events from ALL available calendars?

Please note that on your built-in calendar widget you can see events from Gmail, Exchange, Facebook, etc. How to get these events?

Regarding specific events for a date or a week, I did this using a selection offer and Args selection in the request, for example, for a specific day:

Here are the choices and definitions of args:

 Uri content = Uri.parse("content://com.android.calendar/events"); String[] vec = new String[] { "calendar_id", "title", "description", "dtstart", "dtend", "allDay", "eventLocation" }; String selectionClause = "(dtstart >= ? AND dtend <= ?) OR (dtstart >= ? AND allDay = ?)"; String[] selectionsArgs = new String[]{"" + dtstart, "" + dtend, "" + dtstart, "1"}; 

And here is what the request looks like:

  ContentResolver contentResolver = context.getContentResolver(); Cursor cursor = contentResolver.query(content, vec, selectionClause, selectionsArgs, null); 
+1
source share

All Articles