Planning meetings, get-togethers, and interviews with AgreeADate

| connecting, emacs, geek, life, productivity

One of the reasons why I love thinking of ways to help people rock even more is that I often end up learning a lot in the process.

For example, last week, I needed to coordinate schedules with Katie Bartlett, Jeff Widman’s assistant, for a chat with Jeff about networking. I thought about how much e-mail was sent back-and-forth figuring out times and timezones, and I multiplied that by the number of appointments Katie probably needed to arrange. That sounded like a lot of work. If I could find a tool to make that easier for our appointment, and she used that tool to organize lots of other appointments, then that would be great!

I checked out a couple of tools such as TimeToMeet, ScheduleOnce, and AgreeADate. Of the tools I tried, I liked AgreeADate the most because it made it easy to create different kinds of schedules and it supported timezones. I sent Katie a few potential timeslots for my chat with Jeff. After she replied, I confirmed the time that was mutually convenient. That wasn’t hard at all.

Then I explored the other features. I found out that I could create a schedule where people could pick a slot. AgreeADate allowed me to specify how many people each timeslot was limited to, and how many slots people could choose. This opened up all sorts of possibilities, and has become my favorite feature!

Things that I’d formerly had been worried about scheduling became so much easier to schedule because I could create all the slots in parallel and then let people choose the slots that hadn’t been taken yet. For example, I’d been meaning to try outsourcing some technical and personal tasks, but scheduling interview times sounded like a hassle. With this system, I just had to set all the slots up and invite people to choose the timeslot most convenient for them. Yay!

AgreeADate isn’t perfect, but it makes scheduling things so much easier for me, and it lowers the barrier enough for me to go and make things happen. In the past week that I’ve been trying it out, I’ve:

  • scheduled a capoeira trial
  • scheduled a conference call
  • set up interviews for a system administrator and a virtual assistant, and
  • set up lunch with a poll on where to eat.

You know, stuff that would’ve taken way too much e-mail if I had to do it by hand. =)

I’d like to see it integrated with my Google Calendar, and one of the AgreeADate folks told me that that’s the next thing on their roadmap. I found myself wondering which slots I’d tentatively offered for other events, and being able to see all the tentative slots overlaid on my calendar would be fantastic.

In the meantime, I read the confirmation e-mails in Emacs Gnus, use Remember and Org to create an appointment hyperlinked to that mail, and then use my own code, the twit.el library, and the Twittercal service to create an appointment on my Google Calendar (on google.com), which is then shared with my Google Calendar on sachachua.com thanks to the joys of Google Apps. It’s quite Rube Goldberg-esque (as many of my bubblegum-and-string tricks are), but so far, it works. Maybe this’ll be something I’ll outsource (except perhaps without the Gnus + Remember + Org part) once I’ve gotten that virtual assistance thing sorted out. =)

For the geeks, some Emacs Lisp to mash together with Org, TwitterCal, Google Calendar, and twit.el (some wizardry required):

(defun sacha/org-as-gcal-quick-add ()
  "Convert the current SCHEDULED: timestamp and header into a GCal quick add item."
  (save-excursion
    (org-back-to-heading t)
    (setq end (save-excursion (outline-next-heading) (point)))
    (when (re-search-forward org-scheduled-time-regexp
			     end t)
      (let (ts default-time stamp plain s0 srp s1 s2)
	(setq ts (match-string 1)
	      default-time (apply 'encode-time (org-parse-time-string ts)))
	(when (or (setq stamp (string-match org-stamp-time-of-day-regexp ts))
		  (setq plain (string-match org-plain-time-of-day-regexp ts)))
	  (setq s0 (match-string 0 ts)
		srp (and stamp (match-end 3))
		s1 (match-string (if plain 1 2) ts)
		s2 (match-string (if plain 8 (if srp 4 6)) ts)))
	(cond
	 (s2
	  (concat (org-no-properties (org-get-heading t)) " on "
		  (format-time-string "%x" default-time) " from "
		  (org-get-time-of-day s1 'string t) " to "
		  (org-get-time-of-day s2 'string t)
		  ))
	 (s1

	  (concat (org-no-properties (org-get-heading t)) " on "
		  (format-time-string "%x" default-time) " from "
		  (org-get-time-of-day s1 'string t)
		  ))
	 (t
	  (concat (org-no-properties (org-get-heading t)) " on "
		  (format-time-string "%x" default-time)
		  )
	  ))))))

(defun sacha/org-to-twittercal (string)
  "Post STRING to TwitterCal. See http://www.twittercal.com for details."
  (interactive (list (read-string "Event: " (sacha/org-as-gcal-quick-add))))
  (twit-post-function twit-update-url (concat "d gcal " string)))

I’ll keep you posted on my experiments! =)

You can view 1 comment or e-mail me at sacha@sachachua.com.

1 comment

I organized a potluck -- we had it this past Saturday -- and see that AgreeADate would have been simpler. When I was trolling through alternatives, I noted that Evite gets a lot of dissenters, probably because their business model is ad-based.

The leading alternatives that I saw were ...

(a) Socializr, which runs in the style of Facebook. It's only available for USA signups at the moment -- I suppose that I could make up a zipcode -- but registration would tend to deter Canadians at the moment.

(b) MyPunchBowl would seem to work, and has a strange business model where the third step is to map out the party stores near your location. I guess this has a segment if I partied a lot ... but I don't.

(c) Planypus has the interesting feature of a wiki, where you can share plans and have revisioning. The business model is not ad-driven. If you decide that you're going to host an event with 1000 of your best friends, then Planypus would like to arrange revenue sharing for you.

I sent out the invitations on Planypus, and only one person of the four invitees -- the one most web-savvy -- actually replied via the web interface. For the rest, it was telephone followup.

In 20/20 hindset, I think that AgreeADate would have been sufficient, but I still doubt that everyone would have responded on the web. Instead of Planypus, the whole thing could have been done in a Google Group, but setting up a group for a dinner seems like overkill!