Even though the P300 based speller has proved to be usable by real patients, it is not a user-friendly system. The necesarry calibration session and slow spelling make the system tedious. We present a machine learning approach to P300 spelling that enables us to remove the calibration session. We achieve this by a combination of unsupervised training, transfer learning across subjects and language models. On top of that, we can increase the spelling speed by incorporating a dynamic stopping approach. This yields a P300 speller that works instantly and with high accuracy and spelling speed, even for unseen subjects.