MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    [MMM-SimpleCalendar] Calendar module optimized for an old tablet screen

    Scheduled Pinned Locked Moved Showcase
    4 Posts 2 Posters 767 Views 2 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • J Offline
      jhjang101
      last edited by

      Description:

      This MMM-SimpleCalendar module was created as a digital replacement for a paper calendar, optimized for displaying on an old tablet screen.
      The goal is to provide a simple, highly adjustible, and easy-to-tweek calendar module.

      Key features include:

      • Customizable width and height to match the display screen resolution.
      • Optimized for fullscreen_below or fullscreen_above position with empty space on the left side of the calendar.
      • Adjustable font sizes for days of the week, day numbers, and events.
      • Configurable start of the week (Sunday or Monday) to match personal preference.
      • Two display modes: “monthly” (paper calendar mode) and “6weeks” (rolling 6 weeks).
      • Touch gesture navigation (swipe left/right for previous/next week).
      • Keyboard navigation (up/down arrow keys for previous/next week).
      • Option to show or hide event start times.

      See Configuration Options below.

      Screenshots:

      screenshot.png
      Screenshot shows MMM-SimpleCalendar with default clock and weather modules, and MMM-BackgroundSlideshow.

      Download:

      Download from: https://github.com/jhjang101/MMM-SimpleCalendar

      Installation

      1. Navigate to your MagicMirror² modules folder:

        cd ~/MagicMirror/modules
        
      2. Clone the repository:

        git clone https://github.com/jhjang101/MMM-SimpleCalendar.git
        

      Configuration

      To use this module, add it to the modules array in your config/config.js file:

      modules: [
          {
              module: 'MMM-SimpleCalendar',
              position: "fullscreen_above",
              config: {
                  width: "1280px",
                  height: "800px",
                  startOfWeek: 0, // 0 for Sunday, 1 for Monday (default: 0)
                  dayOfWeekFontSize: "14px",
                  dayNumberFontSize: "40px",
                  eventFontSize: "14px",
                  mode: "monthly", // "monthly" or "6weeks" (default: "monthly")
                  refreshInterval: 10 * 60 * 1000, // Milliseconds interval for refreshing calendar (default: 10 minutes)
                  showEventTime: true, // true or false to show the event start time (default: true)
                  timeFormat: "HH:mm" // Moment.js time format (default: "HH:mm", 12hr format: "hh:mm A", hour only: "hA")
              }
          },
      ]
      

      To display events properly, you need to configure the MagicMirror² default calendar module to fetch calendar events.

      Here’s a basic example of how you might configure the default calendar module to provide events to MMM-SimpleCalendar:

      modules: [
          // ... other modules ...
          {
              module: 'calendar',
              header: "US Holidays",
              // position: "top_left",    
              config: {
                  maximumEntries: 100,
                  calendars: [
                      {
                          fetchInterval: 10 * 60 * 1000,
                          url: "https://calendar.google.com/calendar/ical/your%40gmail.com/private-efhg/basic.ics",
                          color: "#ffffff"
                      },
                      {
                          fetchInterval: 10 * 60 * 1000,
                          url: "https://ics.calendarlabs.com/76/mm3137/US_Holidays.ics",
                          color: "#ff0000"
                      },
                  ]
              }
          },
          {
              module: 'MMM-SimpleCalendar',
              position: "fullscreen_above",
              config: {
                  width: "1280px",
                  // ... other configs ...
              }
          },
          // ... other modules ...
      ]
      

      Configuration Options:

      Option Description
      width Sets the width of the calendar container.
      Example values: "300px", "50%".
      Default value: "1280px" (consider adjusting for your screen resolution, especially for a tablet).
      height Sets the height of the calendar container.
      Example values: "300px", "50%".
      Default value: "800px" (consider adjusting for your screen resolution, especially for a tablet).
      startOfWeek Defines the first day of the week.
      Possible values: 0 (Sunday), 1 (Monday).
      Default value: 0.
      dayOfWeekFontSize Sets the font size for the weekday names (e.g., “S”, “M”, “T”).
      Default value: "14px".
      dayNumberFontSize Sets the font size for the day numbers in the calendar grid.
      Accepts CSS units.
      Default value: "40px".
      eventFontSize Sets the font size for the event titles.
      Accepts CSS units.
      Default value: "14px".
      mode Determines how the calendar weeks are displayed.
      Possible values: "monthly", "6weeks".
      Default value: "monthly".
      refreshInterval The interval (in milliseconds) at which the module will refresh calendar.
      Possible values: Number (milliseconds).
      Default value: 10 * 60 * 1000 (10 minutes).
      showEventTime Controls whether the start time of events is displayed.
      Possible values: true, false.
      Default value: true.
      timeFormat Specifies the format for displaying event times (using Moment.js format codes).
      Possible values: Moment.js format string (e.g., "HH:mm", "h:mm a", "hA", etc.).
      Default value: "HH:mm".

      Version

      • 1.0.0 - Initial release
      S 1 Reply Last reply Reply Quote 0
      • S Offline
        sdetweil @jhjang101
        last edited by

        @jhjang101 cool… can you articulate what you mean by old tablet?

        MM uses the latest javascript idioms, Ecma6, which many older browsers do not support… on my old ipad, black screen
        on my 2018 samsung tv, black screen

        ok on latest android or iphone.

        Sam

        How to add modules

        learning how to use browser developers window for css changes

        J 1 Reply Last reply Reply Quote 0
        • J Offline
          jhjang101 @sdetweil
          last edited by

          @sdetweil Well, I am using it on my 6-year-old Android tablet. Chrome browser does not support fullscreen, so I am using another fullscreen-supported browser app.

          S 1 Reply Last reply Reply Quote 0
          • S Offline
            sdetweil @jhjang101
            last edited by

            @jhjang101 ok…

            Sam

            How to add modules

            learning how to use browser developers window for css changes

            1 Reply Last reply Reply Quote 0
            • 1 / 1
            • First post
              Last post
            Enjoying MagicMirror? Please consider a donation!
            MagicMirror created by Michael Teeuw.
            Forum managed by Sam, technical setup by Karsten.
            This forum is using NodeBB as its core | Contributors
            Contact | Privacy Policy