Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Getting events from calendar

My issue is, I have to make one demo application in which I wants to read the events of the Google calendar, for that I have manually inserted the events like the title of event, the time of events and the details of the whole events. now I need to just read those events form that calendar. For that I have tried to use the gcode(google code) API which provides the calendar API class. But still I cant read those events.

like image 424
Akash Thakkar Avatar asked May 04 '11 13:05

Akash Thakkar


People also ask

How do I fetch an event in Google Calendar?

To retrieve calendar IDs call the calendarList. list method. If you want to access the primary calendar of the currently logged in user, use the " primary " keyword. Event identifier.

How do I see all events in Google Calendar?

Agenda view Use the Agenda view to view all your events grouped by day. To display the Agenda view, click the Agenda button in the top-right corner of the calendar. To switch to the Day view (for any particular day), just click on a date displayed in the Agenda view.

How do I copy all events from calendar?

Click the gear button in the top menu bar, then click Settings. Click Import & Export in the settings, and you'll find the Import option. Select the file you just exported from the other calendar, then choose the calendar you'd like to import the dates to. You've now imported all of your events.


2 Answers

That code above is pretty awful (and it does not seem to work in ICS - definitely the column names are different)

The page here: http://developer.android.com/guide/topics/providers/calendar-provider.html

provides a much better overview. A (much) simpler code to retrieve calendars:

public class CalendarContentResolver {     public static final String[] FIELDS = {          CalendarContract.Calendars.NAME,         CalendarContract.Calendars.CALENDAR_DISPLAY_NAME,         CalendarContract.Calendars.CALENDAR_COLOR,         CalendarContract.Calendars.VISIBLE      };      public static final Uri CALENDAR_URI = Uri.parse("content://com.android.calendar/calendars");      ContentResolver contentResolver;     Set<String> calendars = new HashSet<String>();      public  CalendarContentResolver(Context ctx) {         contentResolver = ctx.getContentResolver();     }      public Set<String> getCalendars() {         // Fetch a list of all calendars sync'd with the device and their display names         Cursor cursor = contentResolver.query(CALENDAR_URI, FIELDS, null, null, null);          try {             if (cursor.getCount() > 0) {                 while (cursor.moveToNext()) {                     String name = cursor.getString(0);                     String displayName = cursor.getString(1);                     // This is actually a better pattern:                     String color = cursor.getString(cursor.getColumnIndex(CalendarContract.Calendars.CALENDAR_COLOR));                     Boolean selected = !cursor.getString(3).equals("0");                     calendars.add(displayName);                   }             }         } catch (AssertionError ex) { /*TODO: log exception and bail*/ }          return calendars;     } } 

Hope this helps!

like image 104
Marco Massenzio Avatar answered Sep 19 '22 12:09

Marco Massenzio


Ok i found the answer of this whole of the concept that how to use the google calendar application integration with the android phone.

code:--

first you set this line which will goes to read the calendar events form the other class form your class which is current is the ApplicationSettings.java .

ReadCalendar.readCalendar(ApplicationSettings.this);

package com.mycalendarevents.android;  import java.util.Date; import java.util.HashSet; import java.util.regex.Pattern;  import android.content.ContentResolver; import android.content.ContentUris; import android.content.Context; import android.database.Cursor; import android.net.Uri; import android.text.format.DateUtils;  public class ReadCalendar {     static Cursor cursor;      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          cursor = contentResolver.query(Uri.parse("content://com.android.calendar/calendars"),                 (new String[] { "_id", "displayName", "selected"}), null, null, null);          HashSet<String> calendarIds = new HashSet<String>();          try         {             System.out.println("Count="+cursor.getCount());             if(cursor.getCount() > 0)             {                 System.out.println("the control is just inside of the cursor.count loop");                 while (cursor.moveToNext()) {                      String _id = cursor.getString(0);                     String displayName = cursor.getString(1);                     Boolean selected = !cursor.getString(2).equals("0");                      System.out.println("Id: " + _id + " Display Name: " + displayName + " Selected: " + selected);                     calendarIds.add(_id);                 }             }         }         catch(AssertionError ex)         {             ex.printStackTrace();         }         catch(Exception e)         {             e.printStackTrace();         }           // 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://com.android.calendar/instances/when").buildUpon();             //Uri.Builder builder = Uri.parse("content://com.android.calendar/calendars").buildUpon();             long now = new Date().getTime();              ContentUris.appendId(builder, now - DateUtils.DAY_IN_MILLIS * 10000);             ContentUris.appendId(builder, now + DateUtils.DAY_IN_MILLIS * 10000);              Cursor eventCursor = contentResolver.query(builder.build(),                     new String[]  { "title", "begin", "end", "allDay"}, "Calendars._id=" + 1,                     null, "startDay ASC, startMinute ASC");              System.out.println("eventCursor count="+eventCursor.getCount());             if(eventCursor.getCount()>0)             {                  if(eventCursor.moveToFirst())                 {                     do                     {                         Object mbeg_date,beg_date,beg_time,end_date,end_time;                          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");                          /*  System.out.println("Title: " + title + " Begin: " + begin + " End: " + end +                                     " All Day: " + allDay);                         */                         System.out.println("Title:"+title);                         System.out.println("Begin:"+begin);                         System.out.println("End:"+end);                         System.out.println("All Day:"+allDay);                          /* the calendar control metting-begin events Respose  sub-string (starts....hare) */                          Pattern p = Pattern.compile(" ");                         String[] items = p.split(begin.toString());                         String scalendar_metting_beginday,scalendar_metting_beginmonth,scalendar_metting_beginyear,scalendar_metting_begindate,scalendar_metting_begintime,scalendar_metting_begingmt;                          scalendar_metting_beginday = items[0];                         scalendar_metting_beginmonth = items[1];                         scalendar_metting_begindate = items[2];                         scalendar_metting_begintime = items[3];                         scalendar_metting_begingmt = items[4];                         scalendar_metting_beginyear = items[5];                           String  calendar_metting_beginday = scalendar_metting_beginday;                         String  calendar_metting_beginmonth = scalendar_metting_beginmonth.toString().trim();                          int  calendar_metting_begindate = Integer.parseInt(scalendar_metting_begindate.trim());                          String calendar_metting_begintime = scalendar_metting_begintime.toString().trim();                         String calendar_metting_begingmt = scalendar_metting_begingmt;                         int calendar_metting_beginyear = Integer.parseInt(scalendar_metting_beginyear.trim());                           System.out.println("calendar_metting_beginday="+calendar_metting_beginday);                          System.out.println("calendar_metting_beginmonth ="+calendar_metting_beginmonth);                          System.out.println("calendar_metting_begindate ="+calendar_metting_begindate);                          System.out.println("calendar_metting_begintime="+calendar_metting_begintime);                          System.out.println("calendar_metting_begingmt ="+calendar_metting_begingmt);                          System.out.println("calendar_metting_beginyear ="+calendar_metting_beginyear);                            /* the calendar control metting-begin events Respose  sub-string (starts....ends) */                            /* the calendar control metting-end events Respose  sub-string (starts....hare) */                          Pattern p1 = Pattern.compile(" ");                         String[] enditems = p.split(end.toString());                         String scalendar_metting_endday,scalendar_metting_endmonth,scalendar_metting_endyear,scalendar_metting_enddate,scalendar_metting_endtime,scalendar_metting_endgmt;                          scalendar_metting_endday = enditems[0];                         scalendar_metting_endmonth = enditems[1];                         scalendar_metting_enddate = enditems[2];                         scalendar_metting_endtime = enditems[3];                         scalendar_metting_endgmt = enditems[4];                         scalendar_metting_endyear = enditems[5];                           String  calendar_metting_endday = scalendar_metting_endday;                         String  calendar_metting_endmonth = scalendar_metting_endmonth.toString().trim();                          int  calendar_metting_enddate = Integer.parseInt(scalendar_metting_enddate.trim());                          String calendar_metting_endtime = scalendar_metting_endtime.toString().trim();                         String calendar_metting_endgmt = scalendar_metting_endgmt;                         int calendar_metting_endyear = Integer.parseInt(scalendar_metting_endyear.trim());                           System.out.println("calendar_metting_beginday="+calendar_metting_endday);                          System.out.println("calendar_metting_beginmonth ="+calendar_metting_endmonth);                          System.out.println("calendar_metting_begindate ="+calendar_metting_enddate);                          System.out.println("calendar_metting_begintime="+calendar_metting_endtime);                          System.out.println("calendar_metting_begingmt ="+calendar_metting_endgmt);                          System.out.println("calendar_metting_beginyear ="+calendar_metting_endyear);                            /* the calendar control metting-end events Respose  sub-string (starts....ends) */                          System.out.println("only date begin of events="+begin.getDate());                         System.out.println("only begin time of events="+begin.getHours() + ":" +begin.getMinutes() + ":" +begin.getSeconds());                          System.out.println("only date begin of events="+end.getDate());                         System.out.println("only begin time of events="+end.getHours() + ":" +end.getMinutes() + ":" +end.getSeconds());                          beg_date = begin.getDate();                         mbeg_date = begin.getDate()+"/"+calendar_metting_beginmonth+"/"+calendar_metting_beginyear;                         beg_time = begin.getHours();                          System.out.println("the vaule of mbeg_date="+mbeg_date.toString().trim());                         end_date = end.getDate();                         end_time = end.getHours();                           CallHandlerUI.metting_begin_date.add(beg_date.toString());                         CallHandlerUI.metting_begin_mdate.add(mbeg_date.toString());                          CallHandlerUI.metting_begin_mtime.add(calendar_metting_begintime.toString());                          CallHandlerUI.metting_end_date.add(end_date.toString());                         CallHandlerUI.metting_end_time.add(end_time.toString());                         CallHandlerUI.metting_end_mtime.add(calendar_metting_endtime.toString());                      }                     while(eventCursor.moveToNext());                 }             }             break;         }     } } 

here is the whole of the code is to be posted which will simply reads each and every events form your calendar with the help of that postback url which is for 2.2 and above version:

Uri.parse("content://com.android.calendar/instances/when").buildUpon(); 

pl find the under those version lower then 2.2 in android and use those events as you required place...

like image 41
7 revs, 7 users 57% Avatar answered Sep 19 '22 12:09

7 revs, 7 users 57%