var calendarUrl = 'http://www.google.com/calendar/feeds/ [EMAIL PROTECTED]/public/full';
Here is the full code I'm using for getting the Google data. Maybe it'll help. I am so appreciative. Thanks: <!-- Scripts for Google Calendar --> <script type="text/javascript" src="http://www.google.com/jsapi? key=ABQIAAAAuNSaa1AxpUwLQhcIE9YqgBQgCt9JjK4BaBX97-8b90ftWl1DexQbWCLHzcUjdELlx5VwP6YkS6Uf1w"></ script> <script type="text/javascript"> <!--/* Loads the Google data JavaScript client library */ google.load("gdata", "1");function init() { // init the Google data JS client library with an error handler google.gdata.client.init(handleGDError); // load the code.google.com developer calendar loadDeveloperCalendar(); } /** * Loads the Google Developers Event Calendar */ function loadDeveloperCalendar() { loadCalendarByAddress('[EMAIL PROTECTED]'); } /** * Adds a leading zero to a single-digit number. Used for displaying dates. */ function padNumber(num) { if (num <= 9) { return "0" + num; } return num; } /** * Determines the full calendarUrl based upon the calendarAddress * argument and calls loadCalendar with the calendarUrl value. * * @param {string} calendarAddress is the email-style address for the calendar */ function loadCalendarByAddress(calendarAddress) { var calendarUrl = 'http://www.google.com/calendar/feeds/' + calendarAddress + '/public/full'; loadCalendar(calendarUrl); } /** * Uses Google data JS client library to retrieve a calendar feed from the specified * URL. The feed is controlled by several query parameters and a callback * function is called to process the feed results. * * @param {string} calendarUrl is the URL for a public calendar feed */ function loadCalendar(calendarUrl) { var service = new google.gdata.calendar.CalendarService('gdata-js-client-samples- simple'); var query = new google.gdata.calendar.CalendarEventQuery(calendarUrl); query.setOrderBy('starttime'); query.setSingleEvents(true); service.getEventsFeed(query, listEvents, handleGDError); } /** * Callback function for the Google data JS client library to call when an error * occurs during the retrieval of the feed. Details available depend partly * on the web browser, but this shows a few basic examples. In the case of * a privileged environment using ClientLogin authentication, there may also * be an e.type attribute in some cases. * * @param {Error} e is an instance of an Error */ function handleGDError(e) { document.getElementById('jsSourceFinal').setAttribute('style', 'display:none'); if (e instanceof Error) { /* alert with the error line number, file and message */ alert('Error at line ' + e.lineNumber + ' in ' + e.fileName + '\n' + 'Message: ' + e.message); /* if available, output HTTP error code and status text */ if (e.cause) { var status = e.cause.status; var statusText = e.cause.statusText; alert('Root cause: HTTP error ' + status + ' with status text of: ' + statusText); } } else { alert(e.toString()); } } /** * 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) { var entries = feedRoot.feed.getEntries(); var len = entries.length; //We then determine how many days are in the current month using PHP var limit = 32; for (var n = 1; n < limit; n++){ var e = String(n); var eventDiv = document.getElementById(e); if (eventDiv.childNodes.length > 0) { eventDiv.removeChild(eventDiv.childNodes[0]); } /* create a new unordered list */ var ul = document.createElement('ul'); /* set the calendarTitle div with the name of the calendar document.getElementById('calendarTitle').innerHTML = "Calendar: " + feedRoot.feed.title.$t; */ /* loop through each event in the feed */ for (var i = 0; i < len; i++) { var entry = entries[i]; var title = entry.getTitle().getText(); //var locations = entry.getLocations()[i].getValueString(); var startDateTime = null; var startJSDate = null; var times = entry.getTimes(); if (times.length > 0) { startDateTime = times[0].getStartTime(); startJSDate = startDateTime.getDate(); } var entryLinkHref = null; if (entry.getHtmlLink() != null) { entryLinkHref = entry.getHtmlLink().getHref(); } var dateString = ""; //Get the month using PHP var f = 3; /* If the month that the user would like to see and the month that the event occurs in are the same, write out content */ if (f == (startJSDate.getMonth() + 1)){ /* If the date that we're on in the loop and the date that the event occurs in are the same, write out content */ if (e == startJSDate.getDate()){ /* Create a list element */ var li = document.createElement('li'); if (!startDateTime.isDateOnly()) { <!-- Format to include AM/PM --> var a_p = ""; var eventStart = startJSDate.getHours(); if(eventStart < 12){ a_p = "AM"; } else{ a_p = "PM"; } if (eventStart == 0){ eventStart = 12; } if (eventStart > 12){ eventStart = eventStart - 12; } dateString += eventStart + ":" + padNumber(startJSDate.getMinutes()) + " " + a_p; } /* if we have a link to the event, create an 'a' element */ if (entryLinkHref != null) { entryLink = document.createElement('a'); entryLink.setAttribute('href', entryLinkHref); entryLink.setAttribute('target', '_blank'); entryLink.setAttribute('className', 'event'); entryLink.appendChild(document.createTextNode(title)); entryLink.appendChild(document.createElement('br')); /*if (locations != null){ entryLink.appendChild(document.createTextNode(' [ ' + dateString + ' - ' + locations + ' ] ')); }else {*/ entryLink.appendChild(document.createTextNode(' [ ' + dateString + ' ] ')); //} li.appendChild(entryLink); } else { li.appendChild(document.createTextNode(title + ' - ' + dateString)); } /* append the list item onto the unordered list */ ul.appendChild(li); var cid = n + 100; var cellID = String(cid); document.getElementById(cellID).className = "fulleventcell"; document.getElementById(cellID).style.cursor = "pointer"; } } }//End the for loop for each event ul.setAttribute('className','events'); eventDiv.appendChild(ul); }//End the for loop for each day of the month } google.setOnLoadCallback(init); //--> </script> <script type="text/javascript"> loadCalendar('http://www.google.com/calendar/feeds/ [EMAIL PROTECTED]/public/full'); </script> On Mar 25, 6:04 pm, "Austin (Google)" <[EMAIL PROTECTED]> wrote: > Hi, > > Setting the orderby and singleevents param should retrieve future events as > well, hmm, I am not sure why you are not getting future events. what is the > calendarUrl you are using? > > Thanks, > Austin > > On Mon, Mar 24, 2008 at 9:27 AM, CreativeLlama <[EMAIL PROTECTED]> > wrote: > > > > > > > I'm trying to load ALL the Google calendar events into the calendar on > > my site. The following code only displays events for this month and > > the future, not all the events: > > > function loadCalendar(calendarUrl) { > > var service = new > > google.gdata.calendar.CalendarService('gdata-js-client-samples- > > simple'); > > var query = new > > google.gdata.calendar.CalendarEventQuery(calendarUrl); > > query.setOrderBy('starttime'); > > query.setSingleEvents(true); > > service.getEventsFeed(query, listEvents, handleGDError); > > } > > > Also, I would like to order the events ascending, but if I add in the > > line "query.setSortOrder('ascending');", then it gives me all the > > events in the past. > > > Any suggestions? > > > Thanks.- Hide quoted text - > > - Show quoted text - --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Calendar Data API" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-calendar-help-dataapi?hl=en -~----------~----~----~----~------~----~------~--~---
