While I fear a calendar is not a strong long-term solution for multiplayer (rather, we need publicity!), it may help on the short term. However, a schedule would probably be a more space-conservative and versatile way to implement this feature instead of displaying a full calendar somehow.
We could have an XML hosted online which stores two things for each entry: a date and time (in UTC) and a description. The multiplayer lobby would then display a short list of upcoming events which have not yet completed (say, no more than an hour past the date and time in the XML). This would prevent the need to edit this file too frequently (since the game itself opts not to display old events). The displayed text is simply the stored description in that XML file.
For example, the XML file might look like:
<events>
<event>
<!-- 1 January 1970 at 12:00 -->
<when>
1970-01-01T12:00
</when>
<what>
A game for time travelers only
</what>
</event>
<event>
<!-- This Friday at 18:00 -->
<when>
2013-08-23T18:00
</when>
<what>
Multiplayer megafest!
</what>
</event>
</events>
As we can see, the date is formatted in ISO 8601. We could either assume all dates are correctly formatted (in which case, we could use regex or even explicitly character positions to parse the date and time), or we could throw out invalid dates.
In game, we'd just have a small column near the IRC chat (possibilities include embedding it directly into the chat, a rigid column with scrollbars, or a collapsible box). This example would simply display:
2013-08-23 at 18:00:
Multiplayer megafest!
The older entry would be ignored, since we're well past the Linux epoch by now. It would be preferable to display the date and time in-game in the user's timezone instead of UTC, to avoid confusion. Otherwise, we should explicitly state "UTC" on the date and time. Optionally, we could also rewrite the date for recent days. For example, for an event that happens on the current day, we'd simply say "today". The next day would say "tomorrow". We could even say things like "This Friday" for days that are in the current week. Options could allow for the user to tweak the display format (we could let them choose their own format in a
strftime compatible string).