Read the statement by Michael Teeuw here.
Calendar Module: How to declare local calendar
-
A quick search for “local ics” would return this: https://forum.magicmirror.builders/topic/467/calendar-ics-file-from-local-path/6 :)
-
@yawns hm Im pretty sure I searched for these two words before I opened the thread but didnt found it… I tried already something like this but without webcal prefix. I will try when I have a connection and give feedback. Thanks for the Link.
-
@yawns now I remember… i tried it that way and now the calendar tells me “no upcoming events”, whats not true.
-
@yawns Ok, the link finally solved my problem. I tried first to place the ics file under /MagicMirror directly but that doesnt work. As mentioned in the link I also created a new folder under /MagicMirror/modules and it works now. Thanks for your help.
-
@bhepler something like this should do the job:
move the call of complimentFile into the start method, you want to load that file only once not every 30 secs
then override the the config compliments object with your data, that should be itstart: function() { Log.info("Starting module: " + this.name); this.lastComplimentIndex = -1; this.complimentFile((response) => { this.config.compliments = JSON.parse(response); }); // Schedule update timer. var self = this; setInterval(function() { self.updateDom(self.config.fadeSpeed); }, this.config.updateInterval); },
-
@DazDavid
great, glad to help! -
@cowboysdude said in Calendar Module: How to declare local calendar:
console.log(json.compliments.morning[0])
I’m not programmer either but doesn’t this line just call the first object in the json file?
Yes, it does. My test file has ten compliments loaded for each array (morning, afternoon & evening). That line was just to verify that I was getting a JSON object and not a file path. Which it does, meaning that I have the code reading from a local and parsing into a JSON object correctly. Now if I can just get that object in place of the default one, I’m golden.
@strawberry-3-141 said in Calendar Module: How to declare local calendar:
@bhepler something like this should do the job:
move the call of complimentFile into the start method, you want to load that file only once not every 30 secs
then override the the config compliments object with your data, that should be itWell, nuts. I inserted this code and now the config.compliments is undefined. But I do think you’ve got me on the right track. Thanks!
compliments.js:67 Uncaught TypeError: Cannot read property 'length' of undefined
-
Okay, thanks to @strawberry-3-141 expert advice, I have it up and running. The code he gave me is good, the JSON file I am loading from is not. We’ve got it sorted out and now I’m loading a compliment array from a file. Woohoo!