How long does it take for a transaction to be included in a block? If I understand it correctly, a transaction must be included in a block and broadcasted to other nodes before the transaction is accepted as valid. But it takes time to create such a block which only miners create.

How much time does it take before the transaction is registered as valid?
Time between mining the blocks is around 10 minutes. Bitcoin protocol adjusts itself to keep that 10 minutes target.

But the transaction is not necessarily included in the next block. It depends on the number of transactions and fee you provide to incentivize the inclusion of your transaction. If the fee is too low transaction will never be mined (put in the block and added on blockchain). If the fee is reasonably high it will be included in the next block (so less than 10 minutes time).

The party receiving the money should not consider transaction valid up until it is "buried" under a number of other blocks (let's say 6 - so another 60 minutes after your transaction is added on the blockchain).