{"record":{"id":"85151e1b5e0ba568","repo":"MagicMirrorOrg/MagicMirror","slug":"https-docs-magicmirror-builders-modules-calendar","errorCode":null,"errorMessage":"https://docs.magicmirror.builders/modules/calendar.html#configuration-options","messagePattern":"https://docs\\.magicmirror\\.builders/modules/calendar\\.html#configuration-options","errorType":"console","errorClass":null,"httpStatus":null,"severity":"info","filePath":"defaultmodules/calendar/calendar.js","lineNumber":145,"sourceCode":"\t\t\t\tselfSignedCert: calendar.selfSignedCert,\n\t\t\t\texcludedEvents: calendar.excludedEvents,\n\t\t\t\tfetchInterval: calendar.fetchInterval\n\t\t\t};\n\n\t\t\tif (typeof calendar.symbolClass === \"undefined\" || calendar.symbolClass === null) {\n\t\t\t\tcalendarConfig.symbolClass = \"\";\n\t\t\t}\n\t\t\tif (typeof calendar.titleClass === \"undefined\" || calendar.titleClass === null) {\n\t\t\t\tcalendarConfig.titleClass = \"\";\n\t\t\t}\n\t\t\tif (typeof calendar.timeClass === \"undefined\" || calendar.timeClass === null) {\n\t\t\t\tcalendarConfig.timeClass = \"\";\n\t\t\t}\n\n\t\t\t// we check user and password here for backwards compatibility with old configs\n\t\t\tif (calendar.user && calendar.pass) {\n\t\t\t\tLog.warn(\"[calendar] Deprecation warning: Please update your calendar authentication configuration.\");\n\t\t\t\tLog.warn(\"https://docs.magicmirror.builders/modules/calendar.html#configuration-options\");\n\t\t\t\tcalendar.auth = {\n\t\t\t\t\tuser: calendar.user,\n\t\t\t\t\tpass: calendar.pass\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t/*\n\t\t\t * tell helper to start a fetcher for this calendar\n\t\t\t * fetcher till cycle\n\t\t\t */\n\t\t\tthis.addCalendar(calendar.url, calendar.auth, calendarConfig);\n\t\t});\n\n\t\t// for backward compatibility titleReplace\n\t\tif (typeof this.config.titleReplace !== \"undefined\") {\n\t\t\tLog.warn(\"[calendar] Deprecation warning: Please consider upgrading your calendar titleReplace configuration to customEvents.\");\n\t\t\tfor (const [titlesearchstr, titlereplacestr] of Object.entries(this.config.titleReplace)) {\n\t\t\t\tthis.config.customEvents.push({ keyword: \".*\", transform: { search: titlesearchstr, replace: titlereplacestr } });","sourceCodeStart":127,"sourceCodeEnd":163,"githubUrl":"https://github.com/MagicMirrorOrg/MagicMirror/blob/4b4a59534f7da01e4030e46029fe9dd649a7675e/defaultmodules/calendar/calendar.js#L127-L163","documentation":"This is the companion documentation link logged immediately after the calendar auth deprecation warning (error 47). The module emits Log.warn with the URL to the official calendar configuration docs so users can find the current auth option syntax. It is informational, not a failure.","triggerScenarios":"Same condition as error 47: a calendar entry with top-level user and pass causes two consecutive Log.warn calls, the second being the docs URL at defaultmodules/calendar/calendar.js:145.","commonSituations":"Appears in logs when auditing startup output after an upgrade; often surfaces when users report 'strange URL warnings' in the MagicMirror log.","solutions":["Open https://docs.magicmirror.builders/modules/calendar.html#configuration-options and migrate to the auth option","Fix the config per error 47 and both warnings disappear","Treat any bare-URL log lines as pointers to documentation, not errors to suppress"],"exampleFix":"// no code change needed for this line itself; resolve by fixing the auth config:\n// before\n{ url: \"...\", user: \"bob\", pass: \"secret\" }\n// after\n{ url: \"...\", auth: { user: \"bob\", pass: \"secret\" } }","handlingStrategy":"validation","validationCode":"// no pre-check needed; this Log.warn accompanies the auth deprecation (error 47).\n// Fixing the auth config silences it.","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Read accompanying docs URLs in warnings before searching forums","Fix the root cause (inline credentials) rather than muting the log","Keep docs.magicmirror.builders bookmarked for option changes"],"tags":["deprecation","calendar","documentation","logging"],"backgroundTag":"deprecation-docs-link","analyzedSha":"4b4a59534f7da01e4030e46029fe9dd649a7675e","analyzedAt":"2026-08-31T21:49:42.591Z","schemaVersion":2},"datasetVersion":"2026-08-31T22:30:34.772Z"}