No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Latest commit 58babe0 Jan 15, 2015
Failed to load latest commit information.
ExtendedCalendarView resolve cursor warnings Jan 15, 2015
.gitignore Removed META-INF Jan 20, 2014
LICENSE Create LICENSE Apr 4, 2014 Update Apr 4, 2014
Screenshot_2014-01-10-19-57-06_framed.png add image Jan 11, 2014



Currently there is no easy way of showing a calendar with the ability to display events on days, ExtendedCalendarView is meant to solve that problem.


simply declare it in your layout

<RelativeLayout xmlns:android=""
  android:layout_height="match_parent" >



get the view like you normally would

ExtendedCalendarView calendar = (ExtendedCalendarView)findViewById(;

Calendar Content Provider

All events are stored in a content provider for easy access and the ability to have other app hook into your calendar if you choose. make sure you declare the content provider in your manifest

    android:authorities="com.tyczj.extendedcalendarview.calendarprovider" />

if you dont want other apps to have access to your database make you add this attribute to the provider


Current database columns

id - database id of the event
event (Text) - name of the event
location (Text) - where the event is
description (Text) - information about the event
start (Integer) - when the event starts
end (Integer) - when the event ends
start_day (Integer) - julian start day
end_day (Integer) - julian end day
color (Integer) - the color of the event

Adding Events

To add an event to the content provider you need the start time, end time, julian start day and julian end day. For now you will have to implement your own way to get all the information but eventually in the future I may create one that you can just call and use.

ContentValues values = new ContentValues();
	values.put(CalendarProvider.COLOR, Event.COLOR_RED);
	values.put(CalendarProvider.DESCRIPTION, "Some Description");
	values.put(CalendarProvider.LOCATION, "Some location);
	values.put(CalendarProvider.EVENT, "Event name);
	Calendar cal = Calendar.getInstance();
	cal.set(startDayYear, startDayMonth, startDayDay, startTimeHour, startTimeMin);
	values.put(CalendarProvider.START, cal.getTimeInMillis());
	values.put(CalendarProvider.START_DAY, julianDay);
	TimeZone tz = TimeZone.getDefault();
	cal.set(endDayYear, endDayMonth, endDayDay, endTimeHour, endTimeMin);
	int endDayJulian = Time.getJulianDay(cal.getTimeInMillis(), TimeUnit.MILLISECONDS.toSeconds(tz.getOffset(cal.getTimeInMillis())));
	values.put(CalendarProvider.END, cal.getTimeInMillis());
	values.put(CalendarProvider.END_DAY, endDayJulian);

	Uri uri = getContentResolver().insert(CalendarProvider.CONTENT_URI, values);

julian start day is generated for you when the month is built so all you would have to do it call day.getStartDay() on the day and it will give you the julian day