
<h3>Google Calendar JSON Test</h3>
<div id="agenda"></div>
<script>
function listEvents(root) {
var feed = root.feed;
var entries = feed.entry || [];
var html = ['<ul>'];
for (var i = 0; i < feed.entry.length; ++i) {
var entry = feed.entry[i];
var title = entry.title.$t;
var start = entry['gd$when'][0].startTime;
var link = entry['gd$comments']['gd$feedLink'].href;
html.push('<li>', start, ' ' ,title, ' ',link, '</li>');
}
document.getElementById("agenda").innerHTML = html.join("");
}
</script>
<script src="http://www.google.com/calendar/feeds/is9ldndpv34nh263hjhah57m34%40group.calendar.google.com/public/full?alt=json-in-script&callback=listEvents">
</script>
Click! DEMO
<h1><div id="title">Google Calendar Blog</div></h1>
<h2><div id="subtitle"></div></h2>
<div style="width:30%;height:100%;float:left;">
<iframe src=" http://www.google.com/calendar/embed?src=is9ldndpv34nh263hjhah57m34%40group.calendar.google.com&chrome=NAVIGATION&height=380&epr=2" style="border-width:0" width="250" frameborder="0" height="420"></iframe>
<a target="_blank" href="http://www.google.com/calendar/render?cid=is9ldndpv34nh263hjhah57m34%40group.calendar.google.com"><img src="http://www.google.com/calendar/images/ext/gc_button1_ja.gif" border=0></a>
</div>
<div id="post-body"></div>
<script>
function getDate(d) {
return new Date(d.replace(/^(\d{4})-(\d{2})-(\d{2})T([0-9:]*)([.0-9]*)(.)(.*)$/,'$2/$3/$1 $4'));
}
function listEvents(root) {
var feed = root.feed;
var calname = feed.title.$t;
var subtitle = feed.subtitle.$t;
document.getElementById('title').innerHTML = calname;
document.getElementById('subtitle').innerHTML = subtitle;
var entries = feed.entry.sort(
function (x,y) {
return getDate(y.updated.$t).valueOf() - getDate(x.updated.$t).valueOf();
}
) || [];
var postbody = document.getElementById('post-body');
for (var i = 0; i < entries.length; ++i) {
var html = [];
var entry = entries[i];
var title = entry.title.$t;
var content = entry.content.$t;
var start = entry['gd$when'][0].startTime.replace(/^(\d{4})-(\d{2})-(\d{2})T([0-9:]*)([.0-9]*)(.)(.*)$/,'$1-$2-$3');
var updated = getDate(entry.updated.$t);
var where = entry['gd$where'][0].valueString;
var link = entry['gd$comments']['gd$feedLink'].href;
var comments = document.createElement('div');
comments.id = link;
postbody.appendChild(comments);
html.push( '<hr>',updated ,'<h3>', title,' / ', start, '</h3> ', content, '<br/>', where );
document.getElementById(link).innerHTML = html.join("");
var script = document.createElement('script');
script.src= link + '?alt=json-in-script&callback=listComments';
script.type = 'text/javascript';
script.charset = 'utf-8';
document.body.appendChild(script);
}
}
function listComments(root) {
var feed = root.feed;
var html = ['<ul>'];
var link = feed.id.$t;
try {
for (var i = 0; i < feed.entry.length; ++i) {
var entry = feed.entry[i];
var content = entry.content.$t;
var published = entry.published.$t;
var updated = getDate(entry.updated.$t);
var author = entry.author[0].name.$t;
html.push('<li>', content, ' ', ' Posted by ' ,author,' / ',updated, '</li>');
}
} catch(e) {}
document.getElementById(link).innerHTML += html.join("");
}
</script>
<script src="http://www.google.com/calendar/feeds/is9ldndpv34nh263hjhah57m34%40group.calendar.google.com/public/full?alt=json-in-script&callback=listEvents" type="text/javascript" charset="utf-8" >
</script>
<iframe src=" http://www.google.com/calendar/embed?src=is9ldndpv34nh263hjhah57m34%40group.calendar.google.com&chrome=NAVIGATION&height=380&epr=2" style=" border-width:0 " width="250" frameborder="0" height="380"></iframe>