RTC skips up to 4 seconds when LED connected

It is always possible to avoid the usage of delay, it is just a question of how.. There are numerous examples in how to use millis() for timing.

EDIT: You should try the code I posted to verify that the RTC works as it is supposed to. Use a phone or whatever to time it over a minute or so.