> I'm interested in trying this, can you give me more detailed > information about how to approach the problem? There are several parts Timebase Timekeeping Alarms Interface Timebase is the "tick" of your calendar. This can be from an external source, such as mains cycles, oscillator or IC. The gif I posted shows a 0.5Hz output but an alternating 0.5Hz is available at the other output pin -> 1Hz if you use both. If you want a less fine resolution, you can divide this down with 4040(s) to get 1 pulse per minute or hour or day Timekeeping is what you do with the tick. You need registers for ticks/seconds, minutes, hours, days, months, and years. A table for days per month will be needed, and leap year testing is going to be straightforward for quite a while Every tick that comes in will increment the lowest register, be it seconds or minutes etc. At this time you perform rollover tests to see if the tick increment will ripple up through the higher registers. You also compare the registers to the alarm(s). A separate register to say whether alarms are enabled and if so, will make that test more efficient. You do what you need to if there's a time-alarm match. Maybe cancel the alarm or keep it enabled for the next hour or day Alarms will have the same registers as timekeeping. A separate register or flag for each could tell the PIC what to do at that alarm, eg '0' turn an I/O off, '1' turn it on etc Interface is how you set the time/alarms and display and I/O driving. To make things easy you'll need possibly an LCD and a few buttons. This could be detachable and used only for setting registers. The simplest solution for navigating through a menu system, selecting items and changing them IMHO would most probably be a mouse wheel and an Enter button -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist