Json output

Add support for basic JSON generation in Calendars
this feels a little fancy - is there a reason it's not worth just using `reject` here?