Great.  I obviously didn't catch that in the API documentation.  That
solves it!  Thanks so much!



On Mar 26, 2:29 pm, Ray Baxter <[EMAIL PROTECTED]> wrote:
> I don't use javascript, but the problems that you are seeing with the
> order and display of events are because you have 39 events in your
> calendar, created in order (at least approximately) from earliest event
> to latest event and only 25 events are being returned in the queries
> that you are making. When you query, and don't specify maxevents the
> default number of events returned is 25.
>
> When you execute your original code, you receive the 25 last added, and
> coincidentally latest in time, events. These events just happen to all
> occur in this month and the future.
>
> When you add set the sortorder to ascending, you receive the 25 events
> that are earliest in time, which all coincidentally occur before today.
>
> If you specify a larger value for maxevents, or limit your events to
> only those events that occur in the currently displayed month if that
> works for your application, you will have better results.
>
> Ray
>
>
>
> CreativeLlama wrote:
> > 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-8b90ftWl1DexQbWCLHzcUjdEL­lx5VwP6YkS6Uf1w"></
> > 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 -- 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to