Tracking Accomplishments with PHP, Google Calendar and Zend Framework

Jul
22
2007

A couple of months ago, I pointed out the utility of keeping track of the things you accomplish on a daily basis. I've been keeping mine in just a notebook. However, making something that can be used to extract reporting information for the eventual inclusion in resume's, status reports, etc.

It struck me that keeping track of that stuff on Google Calendar would be a reasonably good way to centralize it and make it accessibly from any of the computers that I work on (Windows, Linux, Mac, etc.) without depending on software. So, I took a quick look at the PHP API for using GCal's information.

It requires the Zend Framework, so this was an opportunity to install that as well. The instructions on installing the Zend Framework were a bit vague. What it boils down to is this. The "Zend" directory inside the "library" needs to be on your "include_path" for PHP. On my Ubuntu development boxes, that means putting that Zend directory as "/usr/share/php/Zend" and the existing configuration picked it up.

I then grabbed the Calendar.php sample file. There's lots of stuff in there I'll (and you'll) want to change in it for ongoing use (like lots of the defaults). However, it works well to get up and running. I stripped all of the stuff at the end of the file (the stuff that wasn't inside a function), thus turning the Calendar.php file into more of a library to be included.

After including that file in my "createaccomplishment.php", I set up a really basic form for creating an entry.

Add Accomplishments Code: (View Highlighted Code)

I made a couple of changes to what would be a normal calendar entry.

  • I hard-coded the times. After I dig through the library and API a bit more, I'll probably switch these to all day events.
  • I added "ACC–" to the title of the appointments (ACC for accomplishment). This way, they'll be easy to search for specifically.
  • I used the "where" part of an appointment as my entry for which project the accomplishment was for.

Now, at first blush, I can't see how to specify a given calendar (and neither can lots of other people looking for it online). That would be better than a specific subject. Then, you could just search through your "Accomplishments" calendar, which would have nothing else on it. But, this will do to serve as a starting point.

Then, just to give a quick example, you can search for all appointments that contain our marker in them anywhere. It's crude, but it gets the job done.

Show Accomplishments Code:

Aside from the couple of things I'm looking for in the API, it looks like Zend's implementation of the API is relatively easy to work with and would make other kinds of tracking easy as well.

Once integrated into browser bookmarks or desktop widgets, commandline scripts or other places, it could make quickly noting down accomplishments really easy. Once they're stored, they can be retrieved by the variety of criteria that make sense:

  • All accomplishments for a given week, month, year.
  • All accomplishments for a given project (which is stored in the location, like I said)
  • With additional microformatted data in the content, you could store and retrieve all sorts of other useful bits

Of course, what I *really* want is a system that lets me keep track of projects according to who I was employed by while working on it, what technologies were used, duration, who the client was, who the managers were, etc. That would make the various forms of resume's, skills inventories, chronologies, etc. that recruiters and other consulting firms are constantly looking for. Then, the fact that they all seem to ask for slightly different formats won't be a problem.

I could just export it by project, listed chronologically according to employer for one and by employer, listed chronologically by project for another, while turning "Target Corporation" into "retailer" and "Wells Fargo" into "financial institution" for still another. Similarly, I could query such a system for the actual number of months using XSLT, C#, Reporting Services or whatever else I've worked on instead of trying to do those calculations and adjust them constantly.

Being in the effective business of "wholesale" consulting, I tend to make more use of resumes and such project details than more "retail" consulting/freelancing consultants.

Does that exist out there somewhere?

 

Comments on this post

Feedback is always welcome. Read some from other folks or leave your own below. Just keep things civil and remember that what you post lives on in public. Forever.

Thanks,
J

5 Responses to “Tracking Accomplishments with PHP, Google Calendar and Zend Framework”

  1. PHPGeek » PHP, Google Calendar and the Zend Framework Says:

    [...] on my personal site, I wrote up a simple set of scripts to get started with Google's API for the calendar by using the Zend Framework with PHP. I'm using it to track my daily accomplishments for [...]

  2. developercast.com » Jim Wynia’s Blog: Tracking Accomplishments with PHP, Google Calendar and Zend Framework Says:

    [...] he got the Zend Framework installed, he installed the PHP adapter. He talks about the configuration changes he had to make to the Calendar.php file and gives an example of it in [...]

  3. jobhunt.co.il Says:

    Great article thanks !

    I'll be happy to get more code

    cheers !

    ron

  4. Fran Says:

    I tried to make it work, but was not lucky. I copied and pasted the accomplishments code in a file called createaccomplishment.php . I changed USER@gmail.com and PASSWORD with my login information. I also added this line at the beginning (just after

  5. Jay Says:

    Hi J,

    Thanks for explaining a bit about google calendar api and how to make it work.

    I understood most of the part. But I am stuck at one thing. We have 3 calendars for our domain. One is default "Jay" and other two are "Booking" and "To do List".

    I want to add Events to only Bookings calendar. How do I do it. If I add Events it only adds to default calendar. Any help will be appreciated.

    Thanks
    Jay

Leave Your Own Comment

By submitting a comment, you agree to license it under the terms of the Creative Commons Attribution license.

People who post comments get the added benefit of visiting the site without advertising.

© 2003-2008 J Wynia. All original content is licensed under the terms of the Creative Commons Attribution license unless otherwise noted. Content from other sources is licensed under its original terms.