function createWeekTableOneLib(calendarAddress) {

 var sunday = Date.today().last().sunday();
 var saturday = Date.today().next().saturday();
 
/* write table header content (dates for current week) */
$('tr > td.title').each(function(index){
		$(this).empty();
		$(this).removeClass('today');
		var myday = new Date();
		myday.setTime(sunday.getTime());
		myday.add(index).days();
		$(this).append(myday.toString('ddd M/d'));
		myday.clearTime();
		if (Date.today().equals(myday)) { $(this).addClass('today'); }	
})

// clear any previous classes from hours tds
$('td.hours').removeClass('allDay today');
// clear any previous hours
$('td.hours > span').empty();

	loadCalendar(calendarAddress, sunday, saturday);
   
}

/**
 * Callback function for the Google data JS client library to call with a feed 
 * of events retrieved.
 *
 * Creates an unordered list of events in a human-readable form.  This list of
 * events is added into a div called 'events'.  The title for the calendar is
 * placed in a div called 'calendarTitle'
 *
 * @param {json} feedRoot is the root of the feed, containing all entries 
 */ 
function listEvents(feedRoot) {
  // Set the calendar timezone, defaulting to America/New_York
  //var timeZone = new google.gdata.calendar.TimeZoneProperty();
  //timeZone.setValue('America/Denver');
  //feedRoot.feed.setTimeZone(timeZone);
  //var entries = feedRoot.feed.getEntries();
  var entries = feedRoot.feed.getEntries();
  
    var getTimezoneDelta = function(d) {
        var est_offset = 300, actual_tzoffset = d.getTimezoneOffset();
        var delta = actual_tzoffset - est_offset;
        return delta;
    }
  
    /* loop through each event in the feed */ 
    /* use i<7 instead of i<len because queries with all-day events will have len=8; 
    (retrieve one extra day due to timezone weirdness in google calendar) */
    for (var i = 0; i < 7; i++) {
        var entry = entries[i];
        var title = entry.getTitle().getText();
    
        var startDateTime = null;
        var startJSDate = null;
    
        var times = entry.getTimes();
        if (times.length > 0) {
            startDateTime = times[0].getStartTime();
            //startJSDate_test = startDateTime.getDate();
            //tz_delta = getTimezoneDelta(startJSDate_test);
            //startJSDate_test.setMinutes(startJSDate_test.getMinutes() + tz_delta);\
            /*
            if (console) { 
                console.log(startDateTime.date);
                console.log(startDateTime.date.getTimezoneOffset());
                console.log("adjusted tz date = [" + startJSDate_test + "]"); 
                console.log(""); 
            }
            */
            startJSDate = startDateTime.getDate();
            tz_delta = getTimezoneDelta(startJSDate);
            startJSDate.addMinutes(tz_delta);
            //startJSDate.setMinutes(startJSDate.getMinutes() + tz_delta);
            
            endDateTime = times[0].getEndTime();
            endJSDate = endDateTime.getDate();
            endJSDate.addMinutes(tz_delta);
            //endJSDate.setMinutes(endJSDate.getMinutes() + tz_delta);
        }
            
        /* Parse out the Time string */
        var startTimeString = '';
        var endTimeString = '';
        //if (!startDateTime.isDateOnly()) {
        //    startTimeString = extractTime(startJSDate);
        //    endTimeString = extractTime(endJSDate);
        //}	
    
        isAllDay = false;
        if (!startDateTime.isDateOnly()) {
            if (((endJSDate.getTime() - startJSDate.getTime()) / 1000) >= 86340) {
                // assume 24 hour schedule
                isAllDay = true;
            }
            else {
                startTimeString = extractTime(startJSDate);
                endTimeString = extractTime(endJSDate);
            }
        }
        var myDay = startJSDate.getDay();
        var myTd = 'tr#'+myDay+ ' > td.hours';
        var mySpan = myTd + ' > span';
        $(myTd).removeClass('today allDay');
    
        var thisDay = startJSDate.clone().clearTime();
        var mySunday = Date.today().last().sunday();
        var mySaturday = Date.today().next().saturday();
      
        if ( Date.today().equals(thisDay) ) { $(myTd).addClass('today'); }
        if ( startDateTime.isDateOnly() || isAllDay ) { $(myTd).addClass('allDay'); }
    
        var span = "<span>";
    //		span += startJSDate.toDateString() + '<br/> ';
        if ( startDateTime.isDateOnly() ) { span += title; } 
        else if (isAllDay) { span += "Open 24 hours"; }
        else { span += startTimeString + ' - ' + endTimeString; }
        span += "</span>";
        $(mySpan).replaceWith(span);
	}   //end for loop	

} 
