An idea would be to create a datasource that joins your calendar datasource with all possible values of [Source]. Essentially, it would have a record for all sources for each day contained in your data.
Then, you should be able to blend the data and break it by [Source].
You can do this via custom SQL. This SQL is not in Tableau syntax, but it should give you an idea of what I mean:
FROM calendar c JOIN ( SELECT DISTINCT Source
FROM BySource ) s
Perhaps someone else has another idea. Let me know if this works.