Using gadgets outside of iGoogle

Alyce asked:

Bernie, I’m working on a Disaster Housing project in New Orleans/Gulf Coast. Is there some way for me to permanently code in Days Since Katrina Aug 29 2005 (928 days and counting!)I’d like to embed widget in communications to certain folks who refuse to move any quicker! In a very nice way, mind you!

Would love to say “yes” to this one. But unfortunately the answer is “possibly.” :)

So I’ll use this as an excuse to at least start the explanation, since Google doesn’t do a good job in their information for users (or their API) to be clear about what gadgets can/can’t do. I’ll talk about Days Since, but this applies to any Google Gadget.

The gadgets I’ve written all happened to be written first and primarily for iGoogle. But gadgets can be used in several different environments, with various limitations.

  1. iGoogle
  2. Google Desktop
  3. Google Sites
  4. Open Social sites, like Orkut
  5. Any Web Page. Well, on any web page that supports javascript objects (e.g. a WordPress blog like this one, although you have to edit from the “code” tab). Google Pages also works.
  6. And (kinda) via email with “Share this Gadget” within iGoogle

Add to Web Page

Here’s an example, created using Google’s Gadget for Webpage Directory and searching for Days Since.

Google gadgets on a webpage are quite noisy — Google adds all kinds of buttons and links, etc. that make them not very attractive.

What to modify this embedded gadget for your own page? Click on Google’s editor here to start where I left off, and edit the reminder and look of this gadget, and get the code to embed in your own page.

First thing you’ll notice is the settings that you normally see in “Edit Settings” have to be entered manually. Here’s where the design of Days Since isn’t really compatible with embedding in the web. You have to enter the “reminders” field by hand — but in raw json format! If you’re comfortable, go for it. Otherwise, you might add a copy of the gadget to your iGoogle page, get all the reminders looking the way you want them, and then go to “Edit Settings”, copy the reminders, and paste them into the “Add Gadget to Webpage” creator.

Share this gadget

If you’d like to set up some reminders and email them to a friend (or set of coworkers) who use iGoogle, that’s easy. Just get the gadget set up like you’d like to share it, and select “Share this Gadget” from the gadget’s standard drop-down menu.

Enter a few email addresses, and make sure to check “Send my settings for this gadget” (this is off by default). Now, your recipients will get the full, working gadget, with all the reminders or other settings you had set up.

Reminding people about Katrina

So for Alyce:

  • If you want to do this by having the gadget be embedded in your email/newsletter, it will only work if you have a web page with your newsletter/email on it, have the gadget embedded there, and the actual email is a link to that page. It won’t work to embed the gadget directly in the email, because mail programs rarely allow embedding javascript.
  • If you just want to send out a copy of Days Since to other iGoogle users with the “Days Since Katrina” reminder populated, just set that up in your iGoogle page, and “Share this Gadget” (and its settings).

But, for the case you seem to be talking about (reminding the reluctant), I don’t know if either of these methods will achieve the desired effect. I’m sure a little digging might find something better. But maybe the second (sharing the gadget with Days Since Katrina pre-populated) might be a soft enough touch, yet useful enough that the people you’re thinking about will play along.

In any case, best wishes and good luck,


A proof of concept todo gadget

I’m a big fan of David Allen’s Getting Things Done system. I’ve been wanting a todo application that is both simple, always at hand (which for me means iGoogle is a big plus), and which supports GTD’s system of breaking down todos into actionable categories.

This is just an early proof of concept (you can’t even check off/delete todos yet!), but I’d like feedback on the concept. Just crazy? Or crazy like crazy good, and worth completing?

The unmarked box at the bottom lets you add todos. Drag todos to the 4 sides to assign categories. Click on categories to filter the list. Click again to unfilter. Todos are sorted by size and priority.

Obviously pretty UI comes later. And this gadget location or data may disappear. Not suitable yet for real use. Only tested on Firefox so far (no IE, Safari,etc.)

Add to Google

Thanks for any feedback or thoughts you have.

YAGCG Gets Timezone, Permissions Features

A few small features added to YAGCG (Yet Another Google Calendar Gadget) this morning:

  1. The on-gadget menu now has (hopefully clearer) text
    Back to Today” simply re-loads the agenda — usually for when you get lost in the past or future of that scrolling agenda. “Refresh Permissions” does two things: it loads up Google Calendar in a fresh window/tab, which refreshes your login cookie, then 5 seconds later, it reloads your iGoogle page. If you’re getting the “Can’t display calendars …” message in red from Google, this is meant to refresh your permissions.
  2. Added ability to set timezone. This is a result of Google has adding some potentially confusing functionality to their embedded calendar (which this gadget uses). Now, it’s possible to view calendars in other timezones, and Google will modify the displayed times to reflect what the equivalent is in your time zone. If this isn’t what you want (and you rarely would), this can be terribly confusing. So YAGCG now has a setting added to explicitly set your time zone when you configure your calendars, which you’ll have to do if your timezone is off.
    Here is what the “Edit Settings” panel of the gadget looks like now.

Feedsparks now uses Google Chart API

Feedsparks has been updated to use the new Google Chart API for the sparklines it displays.

If you’ve seen slow loading (or non-loading) chart images in Feedsparks, this should help improve the response time and reliability.

Feedsparks is a great way to keep track of the relative popularity of blogs, not just your own.

YAGCG: Easy add, settable height

YAGCG got some updates today, responding to some of the feedback you’ve provided on the early version. Thank you!

Add to Google

New features

  • In “Edit Settings”, you can now add calendars in many formats: the calendar ID directly, or just paste in the XML, iCal, or HTML URL, or even the embedded javascript for the calendar. It will parse out the (name@domain) calendar ID. Note if you have a lot of calendars, you have to stay under 2048 chars total — that means stick to the short calendar ID where possible. (thanks to Rob, Geoff, and Mike for suggesting easier adds)
  • A menu added (thanks to Rob and others for suggestions here)
    • “Today”: Reloads agenda to show today’s events
    • “Full Page”: Loads Google Calendar in a fresh Tab or Page
    • “Help”: Takes you here.
  • “Edit Settings” now lets you set the agenda height, so you can show as much or as little of your future events as you like (thanks to Ben, Rob, Allan, and others)

Remaining limitations

  • You must still add calendars individually
  • No quick add for events (yet)
  • YAGCG has a different color for each calendar, but it can’t query the actual colors that google calendar uses — so it can’t match them.
  • Much of the internal formatting details of the agenda aren’t changable
  • IE still has some layout problems that Firefox and other browsers don’t

Head over to the YAGCG page if you have any other suggestions/comments. Thanks!

New Google Calendar Gadget – YAGCG

I’ve been quite frustrated that Google hasn’t produced a usable gadget for their own calendar system. I’ve tried tons of them.

So, in the long tradition of naming applications that should never had to come into being but for the failings of those that came before, here is YAGCG – Yet Another Google Calendar Gadget.

A simple Google Calendar Gadget with some advantages over the official one.

Install on your iGoogle personalized homepage: Add to Google

Here are some of the main pros and cons vs. the best official Google gadget:

  • Con: You must “Edit Settings” and add the ids of all the calendars you want to track. With the official gadget, it automatically grabs all your calendars from gcal
  • Con: To access your private calendars (e.g. your main one), you must stay logged in to gcal. When your login times out, you must pop over to gcal to refresh it before the gadget will display
  • Con: Doesn’t yet have Quick Add (although if there is interest, it will)
  • Pro: It loads much quicker. The official gadget locks up Firefox for 15 seconds or more and spikes your CPU. YAGCG puts the workload on Google’s servers instead (where it should be, of course).
  • Pro: Easy to quickly scroll ahead to future events. The official gadget only shows a day at a time
  • Pro: While you must add the ids of all calendars you want to track, that also means YAGCG has the flexibility to track a subset, or a completely different set, of calendars than what you track at gcal.

For me, the pros greatly outweigh the cons (the loading issue is a blocker).

If you are a gcal/iGoogle user, have you also struggled with the calendar? Any other pros/cons or feature requests for you? Feedback welcome.

iGoogle preferences have reliability problems

Just a quick note that lots of other users/widgets have been having problems with iGoogle preference saves not working reliability. Based on emails exchanged with users of my gadgets, many of the problems seem to be specific to certain browsers versions. But the problems have been out there for quite a few months, unresolved. My apologies to users of Days Since or Days Until that experience trouble saving new preferences (since these widgets rely on preferences to store all the reminders and other data). Data that has been there will stick around — it’s new adds that are the problem.

Hopefully Google will recognize and resolve these problems soon. Until then, I’ve had good luck using Firefox (, other than the known iGoogle problem when moving widgets after a preference change.