This is an older tutorial that I had written when I was syncing evolution with scheduleworld and my Samsung phone with bitpim. Hopefully this will be of use to someone.
Today I'm posed with a dilemna.
I keep a calendar of gigs and events to let people know where I will be performing, and I make this calendar available to the world using Google Calendar.
So far, this has worked out perfectly for me. I book a gig somewhere, and return to my computer, where I log onto my google calendar, and add the information. By doing this, it automatically posts the information to my website. So I have a single place to keep track of my events.
I also have a seperate google calender for my personal appointments, that I keep to myself.
This is all great, but I'm a forgetful person. If I don't take care updating the gig calendar as soon as I book a gig… I forget, and that generally turns into disaster. And if I ever try to manually update the calendars everywhere that I want them displayed… I wouldn't have any time for gigging in the first place.
My goal here, is to tie everything together.
Not only do I want reminders beeping at me when I have something coming up, but I want to be able to add an event to my website by creating an appointment on my cell phone. For an added layer of complexity I would like to also syncronize this data with my personal computer calendar. Since I am an avid linux enthusiast, my scheduler of choice is Novell Evolution. Most of you however, will be using Microsoft Outlook.
I want as many things as possible beeping and blinking at me to ensure that I take care of everything I need to take care of, weather it be booking a gig, scheduling a newspaper interview, following up with a radio station submission, getting my eyes checked, or taking my girlfriend on a date.
There are quite a few different ways to acomplish this using expensive commercial software… But I'm a cheapskate, and if it can be done for free, I'll find a way.
My first step, was to create a calendar with google by registering at the address below:
After creating an account, I logged into my new google calendar, and created two calendars.
1.) Gig Calendar
2.) Personal Calendar.
After creating the calendars, I started adding my events. They are grouped by color, so that it's easy to see. A blue event on my calender is a gig, and a red one is a personal appointment. If I only want to look for my gigs for the next month, I can set my Personal Calendar to invisible and vise versa.
Now, I had to set the gig calender to be shared to the world.
Under the settings for the Gig Calendar there is an option called “Share this Calendar” … There are a few different options for sharing, and for this calender, I set the setting for “Share all information on this calendar with everyone”. This gives the whole world access to see what I put on the calendar. My events even become archived in Google's Search results. On the Personal Calendar, I set the option “Do not share with everyone”. I don't need the world paying attention to when my bills are due.
Google has now become the main place that I will store my data. Not only is the interface easy to use, but I can also access it anywhere that I can reach the interent. I will consider Google Calender as my calender “backend”.
Now for my next trick, I want to display the gig calender on my website. Google makes this easy.
Here are the steps.
1.) Log into google calendar.
2.) Open up the settings menu for the Gig Calender.
3.) Select “Share this Calendar”. This will open up the sharing options.
4.) Under the sharing options, there is a tab called “Calendar Details”. Click on that tab.
5.) At the bottom of the options menu, there are 3 choices. XML, ICAL, and HTML. For this task, I chose the HTML option.
6.) Google will provide a link to the calender, that I can use anywhere I want. But I don't want my visitors to have to click a link to view my calender, I want it embedded on the page. For this reason, Google created the “Configuration Tool”. This tool provides some options on controlling how the embedded calender will behave. Should it be a month view or an adgenta view.. Sould there be a title for the calender? Should users be able to cycle through the months, or do I only want to display a month at a time. It also lets me chose the background color to help it integrate seemlesly onto my page. After chosing my options, it provides a small bit of HTML that can be copied onto any webpage.
7.) Now, all I have to do is copy the HTML segment into my page. The results can be seen on www.lukemacneil.com/events.php. I can copy that code into any webpage where I want to display my calendar, and when new events are added to google, the websites will automatically reflect the pages.
This in itself saves me alot of work, and minimizes the risk that I'll make a mistake, or forget to update an events list somewhere.
Now, to take this a step further, I want to control the google calender from within my native scheduler, Evolution.
Evolution provides a plugin that will display the Google Calender information, that is very easy to use, but it's limited to viewing. Using this plugin I will be able to see my upcoming events, but I can't add, or change anything. That just doesn't do it for me, so I started searching around for another method. What I found, is a solution created by Mark Swanson called “ScheduleWorld”. Aparently, Mark expereneced the same syncronization frustration, so he created ScheduleWorld to centralize his Schedule, and made it available to everyone. ScheduleWorld is a web application that acts as a middleman between google calender and other apps that need access to it.
The first step in implementing this solution, is to sign up for an account at http://www.scheduleworld.com
After the initial account is created, you can create calenders in ScheduleWorld the same way they were created in Google Calender. I made two, to reflect the calenders I made with Google.
1.) Gig Calender
2.) Personal Calender
After creating the calenders, in order to syncronize with google, permission must be granted to ScheduleWorld to do so. To grant that access, click on the ScheduleWorld “preferences” option. There will be three sets of options. A main options window, that controls the start and end of your day, your password, and some other general preferences, and then a set of options for each of the calenders that you created.
It is here that you must grant ScheduleWorld access to your Google Calender.
After granting ScheduleWorld the necissary access and saving your changes, scroll down to the bottom of the preferences page, and you will see 3 different sets of Configuration Settings.
These are the settings that your applications can use to access the ScheduleWorld data. There are three sets, for three different types of applications. Since I am using Evolution, I am only concerned with the bottom one, which for me, looks like this: