I’ve recently made an alarm clock with arduino. It’s got a real time clock and LCD, buttons. You can have as many different alarms as you want (just recompile) and you can have weekdays, weekends, daily, once, etc properties for your clock. Here is a video. Details (all codes etc) are on my blog post:
I would really like to see some example code of how the clock could auto correct for drift in DS1307 by checking in online from time to time with internet time servers.
Sorry I didn’t get back to you guys. Been busy. You could use a n onboard GPS to account for time shift if you’re worried about it. My shield will take a GPS from sparkfun and GPS is essentially a time piece. It receives time stamps from satellites and compares the difference while accounting for relativistic correction to find positions. If you turn on the GPS, it will periodically output time so you can always be sure to have the correct time, without having to check online.
Here is my post on my most recent interactive GPS logger with my shield: