time calculation

I am creating a smart watch, and I wanted to keep it small so I found a way to make the program calculate the time instead of a module, but I noticed if add more things in the program the time gets glitchy and eventually fall back for 5 or 6 mins I want to keep it small is there a small rtc? I had a thougth of using a atmega chip which would calculate time and using i2c send that time to the a arduino micro which would displayit on the display while the micro would have all the other features and the the time would not stop or would yhis not work I haven't tested it yet. Or is there a way to get (or make) a really small rtc?

please help.

I suppose with "eventually" you mean "after a few days" as that sounds perfectly normal.

If you have Internet connectivity for that watch, just take your time from NTP. Much better than an RTC even.

actually by eventually I mean the next day. also I tried to add a sort of settings once I added it after a few hours the time was wrong about 3 mins

The internal time keeping of ATmega chips is that inaccurate. That’s why there are so many RTCs on the market.

You could try a more accurate crystal on your processor. The Arduino UNO uses a ceramic resonator rather than a crystal. Your circuit can use a highly accurate 16 MHz (or 8 MHz) crystal.