I have been playing with 30boxes.com a bit lately. Many of you know that I have been fruitlessly searching for a decent Calendar app to make my life easier. Seriously, this search is driving me crazy! Well, I wanted to see if I could actually use 30boxes as a calendaring app, rather than just a pretty AJAX-y "Web 2.0" application that has a neat concept to it. The big problem with these online apps is that, believe it or not, I am not online every minute of every day. I know, I know; you don't believe it. Not only have I gotten rid of my wireless access from home, but the wireless at school does not work anywhere close to 85% efficiency. So, if I am going to go to the trouble of entering all this calendaring data, I want it to be available to me even when I am not connected to the Internet.
Fortunately, 30boxes, even in its infancy, has provided for a couple ways to get to your calendaring data for importing into other applications. The format of choice is called \'iCal\' which is both a standard format for calendar data and the name of the Mac OS X calendaring app. The OS/X app just connects right up, but I have no idea if it caches the data for offline viewing or not. Sunbird does not, however, so we will need to download the file to our hard drive. You can do this from the \'Syndication' page of your 30boxes profile, but that only gets it once, and does not obtain later changes.
To get the changes on an ongoing basis, we are going to want to use a quick script to do it for us. I hacked together a little thing that uses wget to grab the .ics file and place it onto our hard drive.
- First, create a folder called \'Calendar\' under your C:\\ drive.
- Next, go out and grab wget, extract it, and place wget.exe in your C:\\Program Files folder.
- Next, we need to create the script to handle the automated downloading for us. You can call it download.bat or calendar.batC:\\calendar directory and copy and paste the code snippet from below into the new file:
@echo offAll that is left is to edit the parts of the script so they point to your own 30boxes calendar.
"C:\Program Files\wget.exe\" --spider http://30boxes.com/iCalUser/XXXXX/YOURNAMEHERE/-randomnumbers-/
"C:\Program Files\wget.exe\" -O "C:\Calendar\calendar.ics\" http://30boxes.com/publish/user_XXXXX.ics
That first nasty URL you get from your 'Syndication' page in your settings. It is one of the iCal options. Just copy the link given you you on your settings page at 30boxes and overwrite what I have provided.
The second, you should just copy what I have and then replace the XXXXX with the 32-digit number in the first URL. You also get this number when you click on the links for the .ics file. Just use that filename for the second URL. The reason for the two separate steps is because you cannot actually download the ics file directly. It gets \'generated\' by hitting a specific URL, then placed somewhere on their server, then you can download it. This process happens automatically using a browser, but it fools wget, so you need this two step process to get the file.
Now that you have and understand this neat-o script, you will want to go to your Control Panel, start up the Task Scheduler, and configure this to run as often as you might like. I have mine run once per day. (Lifehacker has a neat tutorial on using Scheduled Tasks to do this for you.) While you are in there, you might want to take their advice and create one to defrag your hard drive, as well.
Now that you have this file downloaded to your computer and configured to update every so often, you can point a desktop application such as Rainlendar or Sunbird. Of course, you cannot change the file, so Rainlendar is ideal for viewing your own calendar on a daily basis. However, if you are trying to compare multiple calendars from different people, then you might want to use Sunbird to view all the files at once.
All of this was for Sunbird and Rainlendar. If you are using Microsoft's Outlook, check out this Remote Calendars Project, as it has some info on subscribing iCal for Outlook, as well as subscribing to the 30boxes calendar links


5 comments:
Does the code above still work? I'm pretty sure I followed all the steps correctly but nothing happens when I run the scheduled task (the command prompt appears for half a second but then goes away ... not long enough to read it). Any help would be appreciated -- thanks!
It has been a long time since I wrote this.
First, make sure you have the necessary apps installed. Then, at the end of your batch script, put the word 'pause' on a line by itself. This should pause the screen so you can read the output.
Copy the output, and you can hit return to un-pause
Okay, it's giving this error:
'"C:\Program Files\wget.exe\"' is not recognized as an internal or external command, operable program or batch file.
'"C:\Program Files\wget.exe\"' is not recognized as an internal or external command, operable program or batch file.
Press any key to continue . . .
I've never used wget before; is there anything else I have to do besides putting wget.exe in Program Files?
You dson't have wget.exe in c:\program files. You need to go get a copy of wget.exe and place it whereever the script specifies (in this case, c:\program files, but you can change that if you like.
After talking to a wget-savvy friend, I finally got everything working. I had to download a special wget-for-Windows file, put that folder in Program Files, and edit the .bat file a little (the second 30 Boxes URL had to be replaced with the first one, among other things).
I can give you the code I have if you want to add a section for people with Windows. Just let me know -- and thanks for the help :)
Post a Comment