I created a Google doc to calculate some metrics of the Bitcoin reward schedule including e.g. the number of halvings, their first blocks, and how much supply is left to be mined.
As you can see, there will be 33 epochs of 210,000 blocks with a block subsidy. Bitcoin doesn't end there, after that the block reward will be composed only of transaction fees.
The block subsidy will be reduced 33 times, 32 times halving the block reward, and the last event ("33rd halving") reducing the block subsidy from 1 satoshi per block to zero satoshis per block. The limit of the block subsidy is accounted in a whole number of satoshis. The protocol does not allow partial satoshis to be created.
The last (32nd) halving will occur on block 6,720,000 reducing the block subsidy from 2 sats to 1 sat, approximately in 2136, the 33rd "halving" will reduce the block subsidy to zero in block 6,930,000 approximately in year 2140. This means that the last block with a block subsidy will be block 6,929,999.
- Block subsidy: newly minted coins in a block
- Block reward: the miner's total yield from a block composed of block subsidy plus transaction fees