At the time of this writing, the official Microsoft way of transferring PST e-mails to Exchange Online in Office 365 is to use Microsoft Exchange PST Capture Tool. In short, this tool consists of a service, and agent and a console. The service manages searches of PSTs in the network and transfers them to the computer running the service. Then, the service uploads the PSTs to Exchange Online. This should work pretty reasonable as long as you have a lot of users that already have e-mails in PSTs. Outlook, however, started to keep offline data in .ost files for a while, and to be able to use this tool, one would have to first use Outlook to export data in a .pst file, and then use the PST Capture Tool. This becomes tedious once you are working on a live system that receives new e-mails every minute. You would have to repeatedly export from outlook, until you change the MX to the new server/service and repeatedly import using the tool.
For a few users, this might end up as being a simpler way:
1. First of all, you should change the TTL of your MX records for the domain to something like 5 minutes, so when you change the records, they propagate quicky. Allow 1-2 days to pass after this change, in order to propagate the change.
2. Configure the domain on the new service
3. Change the MX records to point to the new service and check that the e-mail flow is working
4. File -> Open & Export -> Import/Export -> Export to file -> .pst
Export e-mail, calendar, contacts, tasks, notes from the current account into PST (it will take a while, depending on the mailbox’s size).
5. Create a new profile in Outlook (Control Panel -> Mail) and configure the new account
6. Start Outlook with the new profile
7. File -> Open & Export -> Import/Export -> Import from file
After checking that everything imported fine, cleanup the old account by deleting the old Outlook profile.