MagicMirror² v2.13.0 is available! For more information about this release, check out this topic.


  • Project Sponsor Module Developer

    UPDATE: v2.0 released – requires MagicMirror v 2.2.0
    See below for details.

    This is based on the default calendar module, and is functionally exactly the same. The difference is in presentation layout:

    0_1494633843517_Screen Shot 2017-05-12 at 8.00.40 PM.png

    A note on v2.0:
    I’ve updated this module to use the new Nunjucks templating system. It also adds a new optional 2-column layout, useful if you’ve assigned MMM-MyCalendar to a wide region in your layout. See screenshot below. If you want to use this version you will need MagicMirror v2.2.0. Otherwise, you can download v1.0 here, which will work with earlier MM versions but will not have the 2-column layout option:

    0_1521028879950_Screen Shot 2018-03-14 at 12.00.41 PM.png

  • Project Sponsor

    @j.e.f.f Hi j.e.f.f.,
    it seems, as you made all the cool modules - so I keep coming back to you with questions. Hope that is OK.
    I plan to use your module to show if today is a national holiday.

    I have three questions for you:

    • If today is no holiday, you module shows “keine Termine” (=no entries). Is it possible to completely hide it, if no entry is present? (I limited the module to show only today’s entry from a public national holiday calendar).

    • You designed a nice way to integrate the number of the day into the calendar icon. I found this to be very useful for upcoming events - but would love to use custom symbols like in the original calendar for entries that are today (e.g. cake for birthdays) to visually separate things easily. The “symbol” variable does not seem to change it. Is it disabled? Or could it be used to overwrite your symbol?

    *Every entry is shown with a symbol, the description and a text, when it will be. In this example “Dienstag” (=tuesday). Is it possible to hide this last element and show only the symbol and the description? As my holiday-checker only shows today’s entries, this could be omitted and look cleaner.

    Thanks for your help!

  • Module Developer

    @j-e-f-f Nice job!
    I have a few question.

    1. How can I set the color of icons? My config is here. I don’t know why it doesn’t work.
        colored: true,  // required, right?
        config: {
            calendars: [
                     color: '#99FF99', // I don't know why this color doesn't work
                     url: "something.ics"
    1. How can you attach extra icon? In your screenshot, “Kinetic Social Pay” event has some image icon. I want to know how to do.

  • Project Sponsor Module Developer

    @Sean you didn’t nest the config properly

        config: {
            colored: true,  // required, right?
            calendars: [
                     color: '#99FF99', // I don't know why this color doesn't work
                     url: "something.ics"

  • Project Sponsor Module Developer

    @rudibarani I just use a holiday calendar to add national holidays into the list. Like the ones you can find here:

    If you download the ics file, you can insert the name into the url like this:

    renders like this:

    As for bringing back the alternative icon, it would break the design. The number in the calendar is the only place where the day of the month is indicated. If there were were a custom icon, I would have to put the full date into the description line, which I was trying to keep as minimal as possible. My thought is that my family would look at this for 30 seconds max on the way out the door. So I’m trying to keep the mental processing down.

    Maybe the original calendar beter suits your needs?

  • Project Sponsor Module Developer

    @Sean That extra icon beside “Kinetic Social Pay” is an emoji in the calendar entry itself. It has nothing to do with this module. In any case, you’re seeing a screenshot from my laptop. It doesn’t render on the mirror running Raspberry Pi. I just see a box.

    Does anyone know how to incorporate emojis on the Pi?

  • Hey Jeff

    Iam not sure if this happend with the change, but i just updated your other module…

    Since you added the possibility to change the format of your MyCommute travelTime (travelTimeFormat: “h[h] m[m]”,) i have the following issue with your calendar module.

    Iam from switzerland and we are using the 24h mode.
    If i set 12h in the config, the apointment is correct 7:00pm

    If i change to 24h in the config (which here is the common setting) it shows 7:00 (am) instead of 19:00

    I know the module is just modified from you (with the integrated basic “calendar” module which comes with the MagicMirror itself i also have the same issue).
    So i think this could be an effect of the recent change of the “moment-duration-format” you describe? Or is this not possible?
    (that works by the way, perfectly)

    Thank you and you made a great job with this modules, love those! 🙂

  • Project Sponsor Module Developer

    @kruemel Ah! I see. The problem here is my version of the module is not properly respecting the global time format setting, so you’re getting a weird combination of 12 hour and 24 hour time in the output. I’ll see how soon I can get a fix in place for this.

  • Project Sponsor Module Developer

    @kruemel OK So I made a rather significant change in order to support this. Instead of trying to use the global time format parameter, you now explicitly specify how you would like days, dates and times displayed in your config. This gives you absolute control over everything.

    To get the update, navigate to the MMM-MyCalendar directory and execute git pull.

    One of the configuration parameters no longer means what it used to. If you used timeFormat to specify if you would like to see relative or absolute dates for upcoming events, that parameter is now named useRelativeDates, and you can specify true or false (Defaults to false).

    timeFormat is now used to specify how you would like to see time displayed. For example, if you wanted 24 hour time with leading zeros, you would specify HH:mm (e.g.: 07:00, 23:30, etc).

    dateFormat, which was previously used to specify a full string for date and time display is now used JUST to configure how you would like dates to be displayed. (e.g.: MMMM D for January 2, DD-MMM for 02-Jan, etc).

    dayOfWeekFormat is new and is used to specify how you would like to see weekday names displayed (e.g.: dddd for Monday, ddd for Mon, etc.).

    joiningWord is the word you would like to see displayed between Day/Date and Time. It defaults to at (e.g.: January 2 at 2:00 PM), so if you do not want a joining word, specify an empty string (i.e.: joiningWord : ""). In the above example you would configure joiningWord : "um".

    The module will build the full event date string using bits and pieces of how your configure the items above.

  • You’r great 🙂

    Thank you very much, it works like a charm. Also happy about the joiningWord.
    That makes fun to use with short response from developers 😉

    Wish you a nice week and thanks again for your fast adjustment!

Log in to reply