30boxes.com is another online calendar service, one that has won some rave reviews.[252]
For information about the 30boxes.com API, go here:
Before programming 30boxes.com, it’s useful of course to view it as an end user:
Sign up for an account if you don’t already have one:
Once you have an account, log into it:
You can learn how to do various tasks at 30boxes.com by consulting the help section (http://30boxes.com/help
).
One noteworthy feature from an end user’s point of view is that, in terms of sharing, it seems that all calendars are completely private by default. You can add buddies and set options as to how much a given buddy can see:
Buddies can see your entire calendar unless you mark an event as private.
Buddies can see events that are marked with a certain tag.
Buddies can see only the stuff on the buddy page.
The main documentation is at this location:
You have to get a key here:
http://30boxes.com/api/api.php?method=getKeyForUser
In this section, we’ll exercise the API. Please substitute your own [APIKEY]
and [AUTHTOKEN]
. You can do HTTP GET
requests on the following URLs:
test.ping
:[253]
http://30boxes.com/api/api.php?method=test.Ping&apiKey={APIKEY}
user.FindByEmail
:
http://30boxes.com/api/api.php?method=user.FindByEmail&apiKey={APIKEY}&email=yee@Â
berkeley.edu
user.Authorize
: Many methods require authorization, which then yields an authorization token. In this example, I use a small picture of me as the application icon.[254]user.FindByEmail
, I also drop the optional returnURL
argument:
http://30boxes.com/api/api.php?method=user.Authorize&apiKey={APIKEY}Â?&applicationName={application-name}&applicationLogoUrl={url}
For example:
http://30boxes.com/api/api.php?method=user.Authorize&apiKey={APIKEY}Â?&applicationName=Raymond+Yee&applicationLogoUrl=http%3A%2F%2Ffarm1.static.Â?flickr.com%2F4Â%2F5530475_48f80eece8_s.jpg
You will get an authentication token, which I show here as {AUTHTOKEN}
.
user.GetAllInfo
:
http://30boxes.com/api/api.php?method=user.GetAllInfo&apiKey={APIKEY}Â?&authorizedUserToken={AUTHTOKEN}
to which you will get something like this:
<?xml version="1.0" encoding="utf-8"?> <rsp stat="ok"> <user> <id>40756</id> <facebookId>1229336</facebookId> <firstName>Raymond</firstName> <lastName>Yee</lastName> <avatar>http://farm1.static.flickr.com/4/5530475_48f80eece8_s.jpg</avatar> <status>sweeping stuff under the carpet while he writes.</status> <bio/> <dateFormat>MM-DD-YYYY</dateFormat> <timeZone>US/Pacific</timeZone> <createDate>2006-03-17</createDate> <startDay>0</startDay> <use24HourClock>0</use24HourClock> <feed> <name>Raymond - MySpace Blog</name> <url>http://blog.myspace.com/blog/rss.cfm?friendID=82943257</url> </feed> <email> <address>yee@berkeley.edu</address> <primary>1</primary> </email> <email> <address>raymond.yee@gmail.com</address> <primary>0</primary> </email> <otherContact> <type>Yahoo</type> <value>rdhyee</value> </otherContact> <otherContact> <type>Personal Site</type> <value>http://hypotyposis.net/blog</value> </otherContact> </user> </rsp>
events.Get
:
http://30boxes.com/api/api.php?method=events.Get&apiKey={APIKEY}Â?&authorizedUserToken={AUTHTOKEN}&start=2007-01-01&end=2007-09-01
to which you will get something like this:
<?xml version="1.0" encoding="utf-8"?> <rsp stat="ok"> <eventList> <userId>40756</userId> <listStart>2007-01-01</listStart> <listEnd>2007-06-30</listEnd> <event> <id>1767437</id> <summary>Y!RB Brain Jam: A CHI2007 Sampler</summary> <notes>[....]</notes> <start>2007-04-27 14:00:00</start> <end>2007-04-27 14:00:00</end> <lastUpdate>2007-04-11 15:08:58</lastUpdate> <allDayEvent>0</allDayEvent> <repeatType>no</repeatType> <repeatEndDate>0000-00-00</repeatEndDate> <repeatSkipDates/> <repeatICal/> <reminder>-1</reminder> <tags/> <externalUID>http://upcoming.org/event/172254/</externalUID> <privacy>shared</privacy> <invitation> <isInvitation>0</isInvitation> </invitation> </event> [....] </eventList> </rsp>
Note | |
---|---|
The |
events.GetDisplayList
(to get an expanded and sorted list of events):
http://30boxes.com/api/api.php?method=events.GetDisplayList&apiKey={APIKEY}Â?&authorizedUserToken={AUTHTOKEN}&start=2007-01-01&end=2007-09-01
todos.Get
:
http://30boxes.com/api/api.php?method=todos.Get&apiKey={APIKEY}&authorizedUserÂ?Token={AUTHTOKEN}
todos.Add
:
http://30boxes.com/api/api.php?method=todos.Add&apiKey={APIKEY}&authorizedUserÂ?Token={AUTHTOKEN}&text=Eat+more+veggies&externalUID=123456x
todos.Update
:
http://30boxes.com/api/api.php?method=todos.Update&apiKey={APIKEY}&authorizedÂ
UserToken={AUTHTOKEN}&text=Eat+more+veggies+and+fruit&todoId=123110&externalUID=Â
123456x
todos.Delete
:
http://30boxes.com/api/api.php?method=todos.Delete&apiKey={APIKEY}&authorizedÂ?UserToken={AUTHTOKEN}&text=Eat+more+veggies+and+fruit&todoId=123110
events.AddByOneBox
:
http://30boxes.com/api/api.php?method=events.AddByOneBox&apiKey={APIKEY}Â?&authorizedUserToken={AUTHTOKEN}&event=eat+some+sushi+tomorrow+at+7pm
Note | |
---|---|
You can find a Python API wrapper for 30boxes.com at |