A numerical algorithm is presented for solving the three-dimensional time-dependent one-particle Schrödinger equation of an atom subject to electromagnetic radiation. The algorithm is optimized for efficiency, and to run a converged calculation of a realistic situation, such as a noble gas atom and a near-infrared laser, takes about 25 min on a PC. Application to truly three-dimensional problems, such as photoionization by fields of arbitrary polarization, delivers an acceptable performance (6 h on a typical PC for calculating the photoelectron spectrum from a 20-cycle pulse).