Separate calendar generation from meeting addition

Separate calendar header generation and write-to-disk functions from
pure meeting addition, so that we can ultimately generate all
meetings in a single calendar.

Change-Id: Ib35b725cf14a87ca5a35287b072f76bb35cc06dc