yep, that's done the trick. One final thing if I'm setting the hour to be 6, how do I know if its am or pm? or how can I set it to be 18:00 instead of 6?

That's what the high bits of the hour are for. From the datasheet, you have in the top nibble: bit 2 selects 12 or 24 hour time, bit 1 is either the am/pm indicator or the high bit of the 24 hour time.

I also thought about getting this to drive a clock and be very hands off, and for me that means adjusting for DST so once set I shouldn't have to touch it. I've written code that barely fits into an ATMEGA8 that adjusts automatically for DST in the US...granted that you can't set the time w/the code, the 1307 has to already have your standard time in it, but it's pretty neat I think nonetheless. Of course you could just use a in input and flip a switch to tell the arduino to adjust or not, but this is all in software and automagic.

So when using the Wire library you need to manually hook up a pull-up resistor. I was playing around with the digital lines trying to use the internal pullup resistors and get the I2C communication going myself. I could never even get the first ACK.

Why is the Wire library on the analog lines? Is there something I am missing in regards to the complexity of communication over an I2C interface with arduino?

Do any of you know of any successful attempts at a wire type library using the digital lines?

I think to use I2C you have to use the analogue pins 4 and 5. if you look at the pin descriptions http://www.arduino.cc/en/Hacking/Atmega168Hardware you can see SCL and SDA are there. Maybe i'm wrong though and it is possible to use the digital pins.

So when using the Wire library you need to manually hook up a pull-up resistor. I was playing around with the digital lines trying to use the internal pullup resistors and get the I2C communication going myself. I could never even get the first ACK.

Why is the Wire library on the analog lines? Is there something I am missing in regards to the complexity of communication over an I2C interface with arduino?

I2C requires the external pull up resistors. Its not a Arduino thing.

I'd advise against trying to do I2C manually. Its not simple especially when compared with SPI.

I2C uses the analog pins because thats just where the required hardware is.The analog pins are actually normal digital pins with analog functionality. Elsewhere on these forums explains how to use them as digital I/O.