Howto integrate Google Calendar in your website using AJAX

Written by on April 17, 2006 in AJAX Tutorials - 114 Comments

One of the features I find it interesting in Google calendar is the possibility to create shared calendars, but also the availability of your calendar as XML or ICAL whatever it’s a private or public one. As soon as we have XML of our calendar available I was wondering why not integrating Google calendar directly in website. For example a community that use the service to manage their events, or to display your future trips in your blog ?

http://ajax.phpmagazine.net/upload/2006/04/ajaxcalendar-thumb.png

First of all I jumped the cross-domain AJAX story since I’m reading data from Google server, I simply written a small PHP script which will read the feeds and resend it again. Then I used my old AJAX RSS Reader, Google calendar don’t deliver RSS but it’s just XML, it’s not a big deal there is just few changes on the code the make it working.


http://ajax.phpmagazine.net/upload/2006/04/calendar1-thumb.png

So to get started I created a shared calendar that I called “AJAX Events”, I have added by the was conferences and seminars but it’s all happen on may 2006 and I don’t know how to make feeds return a longer period. Shared or not shared, since I’m using a PHP script to read from Google calendar you can even use the Private Address which will give you access to your events feeds directly from the reader. Then just copy the url to use it in the script below eventrss.php

http://ajax.phpmagazine.net/upload/2006/04/calendar2-thumb.png

In the javascript side the only changes are in the feed parser and how to handle the elements returned in the XML document. I have added also some more changes like displaying a “no events” message when the calendar is empty.

I have tested the script with Firefox 1.5.0.2 and IE7, it should work also without problems on other browsers. Well a small XML feature and you are open to the world, just use your imagination to personalize the css and find how you can use your calendar.

You can try the AJAX Google calendar Reader online or Download it.

114 Comments on "Howto integrate Google Calendar in your website using AJAX"

  1. melz April 18, 2006 at 5:47 am · Reply

    Awesome script.
    Incidently, I tried using a private URL and the script just “hangs” at “Retrieving data…”
    But it works fine with the public URL … any idea why?

  2. Hatem April 18, 2006 at 8:18 am · Reply

    Try first to open the feed url in your browser and see if it’s returning data. I noticed this too, even after trying to reset the private url, sometimes it still returning error message.

  3. Joe April 21, 2006 at 9:47 am · Reply

    Mine hangs too at Requesting data, for both public and private. In index.html, it seems like I don’t get any output (Javascript debugging) after the line: “var node = RSSRequestObject.responseXML.documentElement;”
    However if I load my URL in directly, the browser returns an XML page that looks valid. Any thoughts?

  4. mark April 22, 2006 at 6:40 am · Reply

    Hi. I found your site on Digg.
    This seems to be an awesome tutorial, which I will try out soon. Thanks.
    For developers who also want to make use of Google’s calendar, they released their API for it quite early:
    http://code.google.com/apis/gdata/calendar.html
    Enjoy! :)

  5. Thomas April 22, 2006 at 3:19 pm · Reply

    hi;
    is there any way to change time format?
    like 22-04-2006 13:30
    thanks;

  6. Hatem April 22, 2006 at 8:26 pm · Reply

    Thomas you can use myDate.split(‘T’) then trying to play with the result or with regular expression, I’m really not sure what kind of format its currently using yyyy-dd-MMThh:mm:ss0Z ?!

  7. Hubris Sonic April 24, 2006 at 3:31 am · Reply

    nice post, and bring back the old logo!

  8. Zack April 24, 2006 at 6:17 am · Reply

    I am having the hanging problem as well (same as Joe). Did anyone get this figured out. Really cool idea btw thanks.

  9. Tom April 24, 2006 at 6:39 am · Reply

    Same hanging problem as above. Don’t know if this is related, but if I load the eventrss.php file directly, I get this error:
    Warning: file_get_contents(http://…@group.calendar.google.com/public/basic) [function.file-get-contents]: failed to open stream: Permission denied in html/events/eventrss.php on line 7

  10. Kyhwana April 24, 2006 at 6:44 am · Reply

    When I click on the URL’s, I get XML like http://www.google.com/calendar/feeds/q6lvh75vfj0vmasq95ttapmmu4@group.calendar.google.com/public/basic/7c8516ifv76kn253vifa2gg6v0?gsessionid=tYQ8cSdeTFQ
    Is there anyway to go straight to the “alternative” URLs with AJAX?

  11. Chrissy April 24, 2006 at 10:08 pm · Reply

    Hey Kyhwana, to get the alternative URL, replace the current itemLink that points to id with the following:
    var itemLink = items[n].getElementsByTagName(‘link’).item(0).getAttribute(‘href’);
    Works for me! Btw, Hatem, thanks a ton for this.. its very simple to understand. I’ll be using it on my own site.

  12. Chrissy April 25, 2006 at 3:21 am · Reply

    Also, to clean up the date, you can do the following:
    var atomdate = items[n].getElementsByTagName(‘published’).item(0).firstChild.data;
    var itemPubDateDay = atomdate.substr(0, 10);
    var itemPubDateTime = atomdate.substr(11, 8);
    }
    catch (e)
    {
    var itemPubDateDay = ”;
    var itemPubDateTime = ”;
    }
    content += itemPubDateDay+’: ‘+itemTitle+’‘;

  13. Irfan Sayed April 25, 2006 at 6:49 am · Reply

    Hi,
    Nice Post … will try it out soon..
    thanks.

  14. Alan April 26, 2006 at 1:15 pm · Reply

    I have tried this and it works well but I would really like to implement the date clean up suggested by Chrissy. I have attempted to add the suggested lines but the script then does not run – help!! You will have gathered by now that I am probably out of my depth…

  15. Hatem April 26, 2006 at 1:36 pm · Reply

    @Alan : I have updated the demo http://phpmagazine.net/demo/ajaxcalendar/ with Chrissy date suggestion. Check the code and give it a try it should work without problems.

  16. Alan April 26, 2006 at 3:53 pm · Reply

    Hatem
    Many thanks – works perfectly.

  17. Klaus Hildner April 28, 2006 at 2:03 am · Reply

    Hi,
    how do I get these calendar entries sorted into chronological order?
    I get a list like the one shown in the snippet below.
    best regards
    Klaus
    * [2006-04-14T07:00:00.000Z] packing up
    * [2006-04-14T12:00:00.000Z] driving to Stuttgart
    * [2006-04-15T07:00:00.000Z] moving Vaihingen to Plieningen
    * [2006-04-17T07:00:00.000Z] (parents, car maintenance)
    * [2006-04-17T17:00:00.000Z] back to Offenbach
    * [2006-04-20T06:00:00.000Z] GFNW LIVE release
    * [2006-04-18T06:00:00.000Z] IWebX LIVE release
    * [2006-04-04T19:00:00.000Z] openbc.de@Darmstadt
    * [2006-04-19T20:00:00.000Z] Badminton
    * [2006-05-11T17:00:00.000Z] phpugffm.de
    * [2006-04-22T18:00:00.000Z] HJ: 40. birthday
    * [2006-04-16T00:00:00.000Z] (parents)
    * [2006-04-14T18:00:00.000Z] Ice Age II?
    * [2006-04-28T08:00:00.000Z] webdeliverytransprogress (FS)
    * [2006-04-28T07:00:00.000Z] systems staff briefing (MW)
    * [2006-04-26T17:00:00.000Z] YMuth visit
    * [2006-05-02T06:00:00.000Z] IWebX LIVE release
    * [2006-05-04T06:00:00.000Z] GFNW LIVE release
    * [2006-05-10T06:00:00.000Z] dentist
    * [2006-05-12T17:00:00.000Z] openbc Hanau — genauer Ort?
    * [2006-05-04T20:00:00.000Z] openbc Frankfurt

  18. Klaus Hildner April 28, 2006 at 2:44 am · Reply

    How do I sort? — The below does not work:
    function cmp(a, b) {
    c = a.getElementsByTagName(‘published’).item(0).firstChild.data;
    d = b.getElementsByTagName(‘published’).item(0).firstChild.data;
    if (c == d) {
    return 0;
    }
    // alert(‘cmp called; c = ‘ + c + ‘, d = ‘ + d);
    return (c No events’;
    } else {
    // items.sort(cmp);
    Array.sort(items, cmp);

  19. yongboy April 29, 2006 at 11:36 am · Reply

    now,I hava change the server into java.
    one javabean
    one jsp
    Other files has no changes!
    If you want to have java version, please mail me
    :))

  20. yeahforbes May 2, 2006 at 4:40 am · Reply

    this is what i use to parse the date… it’s in United States format (mm/dd/yy) but anybody should be able to see how to switch it, if needed.
    try
    {
    var year = items[n].getElementsByTagName(‘published’).item(0).firstChild.data.substring(2,4);
    var month = items[n].getElementsByTagName(‘published’).item(0).firstChild.data.substring(5,7);
    var day = items[n].getElementsByTagName(‘published’).item(0).firstChild.data.substring(8,10);
    var itemPubDate = month + ‘/’ + day + ‘/’ + year;
    }
    however, this still doesn’t solve the problem of sorting it chronologically. having separate variables for the year, month, and day should be helpful though for anybody that wants to attempt it.

  21. Fave May 2, 2006 at 6:30 am · Reply

    I would be interested in parsed out event text. Everything after the “Event Description:” would be great.
    When: 2006-05-08 to 2006-05-09 America/Los_AngelesEvent Description:Right here

  22. mini May 3, 2006 at 10:53 am · Reply

    hang problem described
    http://www.captain.at/howto-ajax-permission-denied-xmlhttprequest.php

  23. mini May 3, 2006 at 1:38 pm · Reply

    you can use array.sort() to sort the content. works great. here is my version of this (note that i’m using a local file as backend) :
    Google Calendar Events – RSS Reader
    // from > http://ajax.phpmagazine.net/2006/04/howto_integrate_google_calenda.html
    // Permission denied to call method XMLHttpRequest.open > http://www.captain.at/howto-ajax-permission-denied-xmlhttprequest.php
    var RSSRequestObject = false; // XMLHttpRequest Object
    var RequestMethod = “none”;
    var url = ‘file:///D:/googlecalendarbasic.xml’; // Backend url
    window.setInterval(“update_timer()”, 1200000); // update the data every 20 mins
    if (window.XMLHttpRequest) // try to create XMLHttpRequest
    {
    RSSRequestObject = new XMLHttpRequest();
    RequestMethod = “XMLHttpRequest”;
    }
    if (window.ActiveXObject) // if ActiveXObject use the Microsoft.XMLHTTP
    {
    RSSRequestObject = new ActiveXObject(“Microsoft.XMLHTTP”);
    RequestMethod = “ActiveXObject”;
    }
    function ReqChange() {
    // If data received correctly
    if (RSSRequestObject.readyState==4) {
    // if data is valid
    if (RSSRequestObject.responseText.indexOf(‘invalid’) == -1)
    {
    // Parsing Feeds
    var node = RSSRequestObject.responseXML.documentElement;
    // Get the calendar title
    var title = node.getElementsByTagName(‘title’).item(0).firstChild.data;
    var channelTitle = ”+title+”;
    var eventList = {};
    var eventSortList = new Array()
    var eventsHTML = “”;
    // Browse events
    var items = node.getElementsByTagName(‘entry’);
    if (items.length == 0)
    {
    eventsHTML = ‘No events’;
    }
    else
    {
    for (var n=items.length-1; n >= 0; n–)
    {
    var itemTitle = items[n].getElementsByTagName(‘title’).item(0).firstChild.data;
    var Summary = items[n].getElementsByTagName(‘summary’).item(0).firstChild.data;
    var itemLink = items[n].getElementsByTagName(‘id’).item(0).firstChild.data;
    try
    {
    // Date clean up suggestion by Chrissy
    var atomdate = items[n].getElementsByTagName(‘published’).item(0).firstChild.data;
    var itemPubDateDay = atomdate.substr(0, 10);
    var itemPubDateTime = atomdate.substr(11, 8);
    }
    catch (e)
    {
    var itemPubDateDay = ”;
    var itemPubDateTime = ”;
    }
    head = itemPubDateDay+’ ‘+itemPubDateTime+’‘+itemTitle+’
    eventList[head] = ”+head+”;
    eventSortList[n] = head;
    }
    eventSortList.sort();
    eventsHTML = ”;
    for (i=0;i’;
    }
    // Display the result
    document.getElementById(“content”).innerHTML = channelTitle + eventsHTML;
    // Tell the reader the everything is done
    document.getElementById(“status”).innerHTML = “Done.”;
    }
    else {
    // Tell the reader that there was error requesting data
    document.getElementById(“status”).innerHTML = “Error requesting data.”;
    }
    HideShow(‘status’);
    }
    }
    function RSSRequest() {
    // change the status to requesting data
    HideShow(‘status’);
    document.getElementById(“status”).innerHTML = “Requesting data with ” + RequestMethod + ” from ” + url;
    // Prepare the request
    RSSRequestObject.open(“GET”, url, true);
    // Set the onreadystatechange function
    RSSRequestObject.onreadystatechange = ReqChange;
    // Send
    RSSRequestObject.send(null);
    }
    /*
    * Timer
    */
    function update_timer() {
    RSSRequest();
    }
    function HideShow(id){
    var el = GetObject(id);
    if(el.style.display==”none”)
    el.style.display=”;
    else
    el.style.display=’none’;
    }
    function GetObject(id){
    var el = document.getElementById(id);
    return(el);
    }

  24. Luis May 3, 2006 at 4:57 pm · Reply

    Quite interesting explanation. By now I’m working on my blog, and one aspect I was wondering how to add, was the possibility of including Google Calendar.
    Now I have something new to do :-)

  25. David May 11, 2006 at 8:50 am · Reply

    I am getting incorrect dates on some of these and the times are all incorrect. I’m using the code unmodified (other than providing the correct feed URL)

  26. David May 11, 2006 at 9:26 am · Reply

    I figured it out. The published date/time is not necessarily the time the event occurs. It can be retrieved from the summary but that is already formatted. Is there a way to retrieve the “full” feed instead of the “basic.” The full has the GData output that gives the exact datetime range. I’ve tried just referencing the full URL but it hangs then.

  27. David May 11, 2006 at 10:52 am · Reply

    OK, I’ve been working on this. The full feed worked after I commented out the summary line in the original code (since there is no summary in the full feed, duh). Anyway, I’m having another problem. IE reads the GData no problem:
    var itemPubDate = items[n].getElementsByTagName(‘gd:when’).item(0).getAttribute(‘startTime’);
    It reads the startTime value from the full feed. However, this same code gives an error in Firefox saying
    items[n].getElementsByTagName(‘gd:when’).item(0) has no properties
    You can verify the difference in their output by going to:
    http://ufacm.dynu.com/ajaxcalendar/
    in both IE and Firefox
    Anyone have any idea why?

  28. madeddie May 12, 2006 at 5:28 pm · Reply

    To get a bit more useful link:
    var itemLink = items[n].getElementsByTagName(‘link’)[0].getAttribute(‘href’);
    this causes the link to be like:
    http://www.google.com/calendar/event?eid=<event-id&gt;
    people clicking will have to be logged into google calendar and be able to view your calendar (or the entry must be public)

  29. Filly May 14, 2006 at 8:32 pm · Reply

    Hi, I’m currently experimenting with this on http://supercharged.nl/events/ajaxcalendar/
    I can’t seem to make the events sort chrono, even with the example. I’d also like to reference certain strings in the “content” section of the feed. Could anyone provide me w/ more insight? Unfortunately I’m no XML buff…yet. TIA!

  30. Tom May 17, 2006 at 7:43 am · Reply

    You may want to consider using Trumba. Our free calendars are super customizable and designed for embedding into websites.

  31. jeff May 23, 2006 at 12:12 am · Reply

    I don’t see that there was any solution to th hangin issue many people reported. I too seem to have this problem and would love to get this integrated. Any solution?

  32. Alan June 4, 2006 at 4:41 pm · Reply

    My JavaScript was rust encrusted, but I hacked away at trying to get the output in a more human readable format, and convert it form GMT time to the time zone of my calendar. Code and details are at:
    http://cogdogblog.com/2006/06/03/tinkering-ajax-calendar-date-output/

  33. Dan June 5, 2006 at 8:33 pm · Reply

    Does anybody have the sorting problem/issue fixed. Could you please post the code.
    Thanks
    Dan

  34. Amirul Momenin June 8, 2006 at 8:44 am · Reply

    This can only extract public and private data from google.I need to modify the Data(When,Where,What etc) .If any body have the knowledge about these
    with Ajax and php,send the information

  35. Alan June 13, 2006 at 3:51 am · Reply

    The problem is more than sorting, it is a realization that the Google Calendar RSS does not use the event date/time as an RSS field- the RSS feed is used only to let you know of recent changes to the feed.
    If you want to use an event date ordered data stream, you ought to use the iCal link from the calendar, not RSS. This negates this Ajax approach; I’ve resorted to using some other code for WordPress- http://dev.wp-plugins.org/browser/ical-events/

  36. Andrea Roach June 13, 2006 at 6:29 pm · Reply

    Is there anyone here that would be willing to help a non-programmer get this working? I’ve got it working in Firefox but it doesn’t render at all in IE and my code no longer validates. The site is written in XHTML. I wasn’t sure where to put the script so I put it in the head tags.
    It is for a homeschool support group site that I’m in charge of building so it’s not like I’ll be making money off it.

  37. arianna June 15, 2006 at 4:50 pm · Reply

    With regards to the hanging that’s been happening, I still haven’t figured out what’s going wrong in Firefox, but the code IS working in IE for me. Just thought that might be a point of interest for those who can’t seem to get past “Requesting data…”. You might want to see if it works in IE to make sure it’s WORKING, and then go from there. I’ll post more if I figure anything out.

  38. reycorp June 16, 2006 at 10:02 pm · Reply

    does anyone have a sample hmtl file I can look at?

  39. Eelco July 7, 2006 at 10:43 am · Reply

    I’ve got working (when eventrss.php is near the root). I have added Chrissy script but I would like to filter out the past agenda items. How can I only show the current and future events and sort the data to the non-US date format (dd.mm.yyyy)?
    Thanks!

  40. Darren July 11, 2006 at 1:04 am · Reply

    Er… no one’s doing anything daft like me are they – I was also wondering why it was hanging at “Retrieving data…” until I realised that I was using the new HTML address instead of the XML one. Now it works fine. My site is now complete – Thanks!

  41. fxcgfxg July 19, 2006 at 7:27 pm · Reply

    sdtgsdg

  42. JF August 12, 2006 at 10:48 am · Reply

    I am trying to implement this on a website where PHP is not available and it seems PHP scripts cannot be called when the script is stored on a different server. Does anyone have a javascript replacement for the PHP server script that could be integrated into the same webpage?

  43. Mark Percival August 26, 2006 at 7:15 am · Reply

    I’ve updated this script a decent amount and I think the end result is better. I’ve got it running up on my site right now.
    Like others have pointed out, the key is to grab the “full” version of the gCal XML and parse it for the gd:when date/time.
    Source and demo at:
    http://www.line72.com/mark/?p=6

  44. fink September 5, 2006 at 5:07 pm · Reply

    Excellent tutorial! Very well laid out with screenshots and numbered code. Thanks much!
    Submitted this tutorial at howtohut.com

  45. Skyler September 9, 2006 at 10:47 pm · Reply

    Has anyone resolved the hanging error? I am running into the same problem. Could it be caused by who is hosting your files? I don’t see many other pausible variables in the situation if everyone is using the same files and getting mixed results.

  46. Skyler September 9, 2006 at 11:49 pm · Reply

    Yay i found a solution for the hanging issue. I did some checking and if you run eventrss.php and you get an error on get_contents() or whatever you most likely have an issue where you host has disabled the use of URLs with that command. The solution is to use some command i’ve never heard of called ‘curl’.
    Replace the contents of your eventrss.php file with this and you should be gold:
    This works if you are on dreamhost i don’t know about other hosts. Good luck!

  47. Skyler September 10, 2006 at 12:12 am · Reply

    Sorry, the post stripped the code even tho i escaped the here

  48. dw235 November 16, 2006 at 7:44 pm · Reply

    Thanks Skyler! Had no idea where I was going wrong this ‘fix’ works well.

  49. Pete November 29, 2006 at 12:24 pm · Reply

    Thanks to Hatem for a great integration solution. I did end up messing with the script for a while before finding Mark Percival’s further revisions here:
    http://webchicanery.com/gcalajax/
    I HIGHLY recommend going there first if you just started reading / trying this.
    Also thanks to whoever first posted the CURL solution.

  50. Susan January 29, 2007 at 7:25 pm · Reply

    this websiteis really usefull
    thanks for taking the time to post

  51. Sharon February 27, 2007 at 7:35 pm · Reply

    ive tried this and it works a treat thankyou

  52. mahes March 9, 2007 at 6:20 am · Reply

    Hi,
    nice thought.but i do not know how can i use?.now am using offline(localhost),it’s not work only show requesting data…ans have a runtime error null is null.how can i use it,and how can i store my data,how can i change it’s for my private.pls help

  53. Metadatos April 9, 2007 at 1:10 am · Reply

    Visitar este site contiene informaci

  54. uk online bingo May 5, 2007 at 12:33 pm · Reply

    great post tried it and it works great. Many Thanks

  55. Toby May 14, 2007 at 5:01 am · Reply

    Thanks sooo much, Skyler!! I’m also on Dreamhost and was experiencing errors until you solved the problem!!!

  56. Jim May 15, 2007 at 2:42 am · Reply

    I’m just about to use google calendar, thanks for the post.

  57. Rogier May 21, 2007 at 11:36 pm · Reply

    Hi, first of all, I love your code! Thank you very much. But, as always, I have a question. Is it possible to show the events in the first five or six days? Now I’m getting a list of all the events, which is not interesting for me. I only want the events of the coming four or five days. Can you please help me with that?

  58. Travis May 23, 2007 at 6:27 pm · Reply

    My calendar dates show up as the time I edited my Google calendar.. NOT the time the event is occurring. anyone have a fix for this problem?

  59. Jim June 3, 2007 at 10:30 pm · Reply

    No, i have the same problem Travis. Hopefully there’s a fix out there.

  60. thinkbingoplus June 4, 2007 at 11:00 pm · Reply

    thanks for the help

  61. Rohit kapur August 7, 2007 at 10:03 am · Reply

    Thanks sooo much, Skyler!! I’m also on Dreamhost and was experiencing errors until you solved the problem!!!

  62. james August 25, 2007 at 2:54 pm · Reply

    goood work . Thank you very much . i was searching from many dayz but i doesnt fnd ny article. Thiz one is really a goood one. Thanks again.
    electronic projects

  63. Freebie Jen August 26, 2007 at 9:24 am · Reply

    Now that’s just a cool thing. I love little scripts like this. It’s have tools like this on a site that makes it stand out from the crowd. Thank you for sharing your script!

  64. Jose December 8, 2007 at 7:48 pm · Reply

    Thanks a for a great read, thanks for the script, I really needed something like it :)

  65. bipula December 14, 2007 at 11:04 am · Reply

    This is indeed a very good job.
    I am having a problem. I want the events to further have links to detailed information, that too in my website, I don’t want any google page.
    I tried the same code passing the xml url to id and geting the id, but it is not working plz give me a way out for this

  66. oil pet portraits January 2, 2008 at 10:35 am · Reply

    This is interesting! In one of our test sites, I requested one of our tech people to work on this. When our boss saw the output, he was actually more than glad. Our tech people were able to include our scheduled tasks on the calendar and it was a great help to all of us.

  67. sona susan January 3, 2008 at 8:36 am · Reply

    I have downloaded the ajax code and gave my url to the denoted place.and run it locally.but its not working.only the index.html page is displayed
    my URL :http://www.ticketbozo.com/ajaxcalendar/index.html

  68. Michel Malcin January 15, 2008 at 1:15 pm · Reply

    Hello!
    Thanks for this script. It is awsome. I just have one question! Is it possible to include more than one calender in this script? It would be really usefull. I am not an expert on php und java.
    Please Help!
    Thanks
    Michel

  69. Gemini January 17, 2008 at 2:05 pm · Reply

    Recently I was recommended to use your site for generating code to integrate RSS feeds on my site. However, I have a query on how to read RSS feeds from an intranet site and display them on a site on the same intranet.
    I require common username & password to login to both the intranet sites. Please provide me the code which I can use to integrate RSS feeds. Can you please help me to develop code for customized RSS reader?

  70. canadaseo.net February 3, 2008 at 6:42 pm · Reply

    Is it possible to add task on calendar?

  71. Craig Kendall February 12, 2008 at 4:30 am · Reply

    Thanks to Skyler for the Dreamhost fix… I’m at least getting a feed now. Only problem is my three events showing all have a date of 1970-01-01T00:00:00.000Z and all it says beside it is “busy” instead of any useful calendar data.
    I’m attempting to use this on a hosted google apps domain. Could that be part of the issue?

  72. Tornador March 12, 2008 at 12:51 am · Reply

    I

  73. Bingojoy April 8, 2008 at 8:31 pm · Reply

    Thanks for the help on this! I finally got it working thanks to your tutorial. :) You’re a life saver!

  74. D4rkTiger June 2, 2008 at 3:39 pm · Reply

    Hello,
    I try to use your script which seems to be more reliable et useful but when I fill the variable

  75. website design July 17, 2008 at 4:23 pm · Reply

    hello
    I am downloading the script and try to add google calender at my website
    thanks

  76. website design July 17, 2008 at 4:26 pm · Reply

    hello
    I am downloading the script and try to add google calender at my website
    thanks

  77. nitin patil August 29, 2008 at 5:56 pm · Reply

    how to add google calendar in my google site plz reply soon

  78. icoft123 October 22, 2008 at 7:26 am · Reply

    WORLDWIDE client base in the cell phone sector. Tremendous opportunity to get in the stock now. Check out how big the opportunity is at http://www.icoft.com/roke.html

  79. icoft123 Roke October 30, 2008 at 11:50 am · Reply

    Worldwide client base in the mobile communications space. See the details at
    http://www.icoft.com/roke.html
    any clarification at
    icoft123@gmail.com

  80. David November 12, 2008 at 4:41 am · Reply

    I have an ASP and AJAX Google Calendar tutorial. If anyone wants to use it please express your interest and I will make it available to you.

  81. tc909 January 13, 2009 at 7:08 pm · Reply

    Have you solved how to combine multiple calendar feeds into one?

  82. prabhu January 20, 2009 at 8:49 am · Reply

    hi friend,
    i juz got ur mail id from thiz website. plz send the google calendar source code to ma mail id eprabhu@ventechsolutions.com thankz in advance

  83. odszkodowania February 11, 2009 at 5:30 pm · Reply

    Thanks for the help on this! I finally got it working thanks to your tutorial. :) You’re a life saver!

  84. Jimbob February 27, 2009 at 10:50 pm · Reply

    I like this! But the date posted in the date the event was created in calendar, not the date of the event. Also want to get the date and time in a more friendly format..currently show Greenwhich mean time.

  85. tommy February 28, 2009 at 5:17 am · Reply

    do you make it sort by event date, not publish date?

  86. Tate March 3, 2009 at 6:20 pm · Reply

    This is awesome but is there anyway to use it to read more than one Google Calendar. I have a few calendars that I want to parse and show all the dates in order together.

  87. Wayne Daly March 11, 2009 at 3:54 pm · Reply

    How can I get the time switched to PST?

  88. Levent March 16, 2009 at 7:51 pm · Reply

    I would very much love to see the ASP tutorial you mentioned!

  89. Luke March 21, 2009 at 2:31 am · Reply

    I just stumbled across this. I love the idea but am not a programmer or IT savvy at all.
    If anyone would be interested in setting this up for my company please email me at
    Luke@Commercialmillions.com.
    I would like to hire someone ASAP.
    Luke

  90. Kevin March 29, 2009 at 2:06 am · Reply

    Learn ENGRISH LANGUAGE you stoopid monkey!

  91. suren May 15, 2009 at 9:26 pm · Reply

    Hi,
    In our application, i want to use the google like calendar control. can you please send your link.
    Thanks

  92. foxy May 27, 2009 at 12:53 am · Reply

    Do you know if it is possible to add this inside a Joomla module?

  93. foxy May 27, 2009 at 12:57 am · Reply

    Is it possible to add this inside a Joomla module?

  94. kaputtehaare July 13, 2009 at 9:36 pm · Reply

    @Darren:
    This has happend to me quite a few time and it’s always a bit funny when you realize mistakes like that :-)

  95. Thomas August 9, 2009 at 5:03 pm · Reply

    I would like the “ASP and AJAX Google Calendar tutorial”
    send it to my e-mail duus112@hotmail.com

  96. Gecko August 21, 2009 at 7:51 pm · Reply

    I cannot get this past “Requesting data…” and I’ve tried all the fixes posted here that I can still get to (so many dead sites). Little help?

  97. Yota September 16, 2009 at 2:06 pm · Reply

    In order to retrieve the calendar events sorted by date you can append a parameter “orderby=starttime”
    and the google calendar will sort the events accordingly.
    A second parameter “start-min=2009-08-01T00:00:00″
    allows you to skip all calendar entries before a certain date.
    Example:
    $calendarURL = ‘http://www.google.com/calendar/feeds/[your calendar ID]%40group.calendar.google.com/public/basic?orderby=starttime&start-min=2009-08-01T00:00:00′;

  98. Yota September 16, 2009 at 2:16 pm · Reply

    In order to retrieve the calendar events sorted by date you can append a parameter “orderby=starttime”
    and the google calendar will sort the events accordingly.
    A second parameter “start-min=2009-08-01T00:00:00″
    allows you to skip all calendar entries before a certain date.
    Example:
    $calendarURL = ‘http://www.google.com/calendar/feeds/_your_calendar_ID_>%40group.calendar.google.com/public/basic?orderby=starttime&start-min=2009-08-01T00:00:00′;

  99. Aslam Multani October 6, 2009 at 8:49 am · Reply

    Hi,
    This is very useful script to work with google calendar.
    Is it possible to use it with wordpress?
    Thanks,
    Aslam Multani

  100. vinyl letters February 20, 2010 at 1:44 pm · Reply

    you can use array.sort() to sort the content. works great. here is my version of this.

  101. Schwaba March 3, 2010 at 10:03 pm · Reply

    Hi TY for this great script it just works fine…
    Due to I am bloody amateur I want to ask if its possible to check if “at the moment” there is “an entry” in the calendarand give me a grafical output?
    f.e. Check Google Calender if there is a entry with the name Vanessa at the moment and give me a .jpg out?
    Need it for a presence list…
    TY All and greets from germany

  102. Schwaba March 3, 2010 at 10:05 pm · Reply

    Hi TY for this great script it just works fine…
    Due to I am bloody amateur I want to ask if its possible to check if “at the moment” there is “an entry” in the calendarand give me a grafical output?
    f.e. Check Google Calender if there is a entry with the name Vanessa just in this moment and give me a .jpg out?
    Need it for a presence list…
    TY All and greets from germany

  103. Amit March 9, 2010 at 7:51 pm · Reply

    Is it possible to Add Task using the google calendar API?

  104. indir March 10, 2010 at 12:07 am · Reply

    One of the features I find it interesting in Google calendar is the possibility to create shared calendars, but also the availability of your calendar as XML or ICAL whatever it’s a private or public one. As soon as we have XML of our calendar available I was wondering why not integrating Google calendar directly in website. For example a community that use the service to manage their events, or to display your future trips in your blog ?

  105. chandana April 8, 2010 at 4:01 pm · Reply

    How to my Google calendar feed url?

  106. Lisa April 14, 2010 at 9:57 am · Reply

    complicated but got there in the end

  107. www.alexanderrybaktr.com April 24, 2010 at 1:39 am · Reply

    thank you for post

  108. Kevin May May 3, 2010 at 11:01 pm · Reply

    Is there a way to generate the current date and then insert it into the url paramater “start-min”
    I understand I can physically enter “&start-min-2010-05-03T00:00:00″ and it’ll work.

  109. Sohbet odaları May 24, 2010 at 8:16 pm · Reply

    Is there a way to generate the current date and then insert it into the url paramater

  110. nakliye July 6, 2010 at 1:21 pm · Reply

    I am having the hanging problem as well (same as Joe). Did anyone get this figured out

  111. Anonymous July 28, 2010 at 1:31 pm · Reply

    Is it possible to Add Task using the google calendar API?

  112. sairam October 2, 2010 at 3:07 pm · Reply

    really usefull for learners
    great job… and thanks for share…

  113. hhinsider November 8, 2010 at 6:58 pm · Reply

    @ nakliye, joe
    and all guys who become every time only the output “Retrieving data…” instead of the calendar entrys in index.hetml. The hole thing works only if you upload “index.html” and “eventrss.php” on an online server. I had the same problem while testing lokal, but after uploading to my server it work.
    Thanks a lot for the script and everyone who help to optimize this!

  114. Ewan Sheriff November 12, 2010 at 4:08 am · Reply

    The calendar worked first time, thanks.

Leave a Comment