Definitely the battery but if your unsure its the battery take it somewhere and have them check out how many amps its putting out. Chances are its probably around 2 or 3 and should be putting out double digits. I just had the same thing happen to me on a non BMW I got the oil changed and when the battery was tested it was putting out 3 amps. Decided not to change not to change it. Two days later went to start the car and it wouldn't start. Everything else would come on.
2013 E92 M3
Space Grey/Fox Red Novillo