The PyPortal does have a 4-pin JST connector on the side, which makes it easy to hook up a IC2 Breakout like the DS3231, which is about 1 PPM accurate, or 3 seconds a month. That is a heck of a lot better than the 16 HOURS per month error due to a lack of an accurate internal clock on the PyPortal. But that adds about $15 to the cost of the bill of materials, and looks ugly as heck. It also requires cutting a trace and installing a jumper as the power on that 4-pin JST connector needs to be 3.3 volts, not the default 5 volts.
Why the designer of the PyPortal didn’t at least put pads on the board to allow a user to install the crystal and two caps, which could have been done for zero cost, I don’t know. I can remember building boards for my company and doing exactly that, being unsure if early RC timers would be accurate enough (they weren’t). Probably didn’t bother to check and see how dreadful the internal RC clock was and just assumed it was good enough.