[{"data":1,"prerenderedAt":105},["ShallowReactive",2],{"integration-node-red-contrib-cron-plus\u002F":3},{"_id":4,"categories":5,"author":8,"description":10,"npmOwners":11,"npmScope":13,"name":4,"ffCertified":14,"downloads":15,"version":17,"updatedAt":18,"maintainers":19,"homepage":22,"bugs":23,"repository":25,"time":28,"lastUpdated":18,"created":29,"license":60,"githubOwner":9,"githubRepo":4,"examples":61,"readme":104},"node-red-contrib-cron-plus",[6,7],"catalogue_date-and-time","catalogue",{"name":9},"Steve-Mcl","A flexible scheduler (cron, solar events, fixed dates) node for Node-RED with full dynamic control and time zone support",[12],"steve-mcl",null,false,{"week":16},4498,"2.2.4","2025-09-28T19:25:58.179Z",[20],{"name":12,"email":21},"sdmclaughlin+npm@gmail.com","https:\u002F\u002Fgithub.com\u002FSteve-Mcl\u002Fnode-red-contrib-cron-plus#readme",{"url":24},"https:\u002F\u002Fgithub.com\u002FSteve-Mcl\u002Fnode-red-contrib-cron-plus\u002Fissues",{"type":26,"url":27},"git","git+https:\u002F\u002Fgithub.com\u002FSteve-Mcl\u002Fnode-red-contrib-cron-plus.git",{"created":29,"modified":18,"0.2.1":30,"0.3.0":31,"0.4.0":32,"1.0.0":33,"1.0.1":34,"1.0.2":35,"1.0.3":36,"1.0.4":37,"1.0.5":38,"1.0.6":39,"1.0.7":40,"1.2.1":41,"1.3.0":42,"1.4.0":43,"1.4.1":44,"1.4.2":45,"1.4.3":46,"1.5.3":47,"1.5.4":48,"1.5.5":49,"1.5.6":50,"1.5.7":51,"2.0.0":52,"2.0.1":53,"2.1.0":54,"2.2.0":55,"2.2.1":56,"2.2.2":57,"2.2.3":58,"2.2.4":59},"2019-08-02T08:38:12.878Z","2019-08-02T08:38:13.078Z","2019-08-09T15:40:59.614Z","2019-10-20T22:33:22.993Z","2020-06-11T20:50:45.635Z","2020-06-15T10:40:16.651Z","2020-06-15T10:45:03.804Z","2020-06-23T18:39:44.135Z","2020-07-01T17:04:37.566Z","2020-07-03T19:10:30.210Z","2020-07-03T19:37:08.577Z","2020-07-15T10:43:42.702Z","2020-08-22T13:58:28.218Z","2020-09-24T10:46:25.963Z","2021-01-03T14:50:40.060Z","2021-02-14T14:51:59.454Z","2021-02-14T15:40:55.301Z","2021-03-14T15:13:19.869Z","2021-06-24T07:30:13.416Z","2021-06-26T09:27:25.702Z","2021-12-22T08:53:27.807Z","2022-01-24T21:33:38.592Z","2022-06-08T06:56:33.721Z","2023-07-23T22:08:41.038Z","2023-07-24T07:58:12.827Z","2023-07-26T18:52:42.221Z","2025-07-27T18:32:31.985Z","2025-08-11T06:45:23.755Z","2025-09-23T18:58:46.988Z","2025-09-23T20:13:24.878Z","2025-09-28T19:25:57.951Z","MIT",[62,68,74,80,86,92,98],{"name":63,"path":64,"url":65,"downloadUrl":66,"flow":67},"NYSE Trading","examples\u002FNYSE Trading.json","https:\u002F\u002Fgithub.com\u002FSteve-Mcl\u002Fnode-red-contrib-cron-plus\u002Fblob\u002Fmaster\u002Fexamples\u002FNYSE%20Trading.json","https:\u002F\u002Fraw.githubusercontent.com\u002FSteve-Mcl\u002Fnode-red-contrib-cron-plus\u002Fmaster\u002Fexamples\u002FNYSE%20Trading.json","[{\"id\":\"3a493177.36730e\",\"type\":\"cronplus\",\"z\":\"21106466.70e60c\",\"name\":\"\",\"outputField\":\"payload\",\"timeZone\":\"America\u002FNew_York\",\"commandResponseMsgOutput\":\"output1\",\"outputs\":1,\"options\":[{\"expressionType\":\"cron\",\"name\":\"schedule1\",\"topic\":\"stocks\u002Fnyse\u002Ftrading\",\"payload\":\"true\",\"type\":\"bool\",\"expression\":\"0 30 9 * * 1-5 \",\"location\":\"\",\"offset\":\"0\",\"solarType\":\"all\",\"solarEvents\":\"sunrise,sunset\"},{\"expressionType\":\"cron\",\"name\":\"schedule2\",\"topic\":\"stocks\u002Fnyse\u002Ftrading\",\"payload\":\"false\",\"type\":\"bool\",\"expression\":\"0 0 16 * * 1-5 \",\"location\":\"\",\"offset\":\"0\",\"solarType\":\"all\",\"solarEvents\":\"sunrise,sunset\"}],\"x\":320,\"y\":820,\"wires\":[[\"254f0673.3fcf7a\"]]},{\"id\":\"254f0673.3fcf7a\",\"type\":\"switch\",\"z\":\"21106466.70e60c\",\"name\":\"Is Trading?\",\"property\":\"payload\",\"propertyType\":\"msg\",\"rules\":[{\"t\":\"true\"},{\"t\":\"false\"}],\"checkall\":\"true\",\"repair\":false,\"outputs\":2,\"x\":510,\"y\":820,\"wires\":[[\"4549aab5.59dac4\"],[\"802601c0.c1142\"]],\"outputLabels\":[\"Yes\",\"No\"]},{\"id\":\"4549aab5.59dac4\",\"type\":\"debug\",\"z\":\"21106466.70e60c\",\"name\":\"Trading Started\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"payload\",\"targetType\":\"msg\",\"x\":740,\"y\":800,\"wires\":[]},{\"id\":\"802601c0.c1142\",\"type\":\"debug\",\"z\":\"21106466.70e60c\",\"name\":\"Trading Ended\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"payload\",\"targetType\":\"msg\",\"x\":740,\"y\":840,\"wires\":[]}]",{"name":69,"path":70,"url":71,"downloadUrl":72,"flow":73},"dashboard schedules","examples\u002Fdashboard schedules.json","https:\u002F\u002Fgithub.com\u002FSteve-Mcl\u002Fnode-red-contrib-cron-plus\u002Fblob\u002Fmaster\u002Fexamples\u002Fdashboard%20schedules.json","https:\u002F\u002Fraw.githubusercontent.com\u002FSteve-Mcl\u002Fnode-red-contrib-cron-plus\u002Fmaster\u002Fexamples\u002Fdashboard%20schedules.json","[{\"id\":\"c261ada8.d4cd7\",\"type\":\"ui_text\",\"z\":\"21106466.70e60c\",\"group\":\"d6a1695f.c376f8\",\"order\":1,\"width\":\"16\",\"height\":\"2\",\"name\":\"CRON Description\",\"label\":\"Expression Description (updates as you type)...\",\"format\":\"{{msg.payload.result.description}}\",\"layout\":\"col-center\",\"x\":810,\"y\":220,\"wires\":[]},{\"id\":\"eb8003d2.ea6ef\",\"type\":\"cronplus\",\"z\":\"21106466.70e60c\",\"name\":\"Cron Describer\",\"outputField\":\"payload\",\"timeZone\":\"\",\"persistDynamic\":false,\"commandResponseMsgOutput\":\"output2\",\"outputs\":2,\"options\":[],\"x\":540,\"y\":220,\"wires\":[[],[\"c261ada8.d4cd7\"]]},{\"id\":\"35c93639.1b4fda\",\"type\":\"function\",\"z\":\"21106466.70e60c\",\"name\":\"describe cmd\",\"func\":\"msg.payload = {\\n    \\\"command\\\": \\\"describe\\\",\\n    \\\"expression\\\": msg.payload\\n}\\nreturn msg;\",\"outputs\":1,\"noerr\":0,\"x\":330,\"y\":220,\"wires\":[[\"eb8003d2.ea6ef\"]]},{\"id\":\"4cac7726.7daf48\",\"type\":\"change\",\"z\":\"21106466.70e60c\",\"name\":\"\",\"rules\":[{\"t\":\"set\",\"p\":\"ui_add_schedule_name\",\"pt\":\"flow\",\"to\":\"payload\",\"tot\":\"msg\"}],\"action\":\"\",\"property\":\"\",\"from\":\"\",\"to\":\"\",\"reg\":false,\"x\":390,\"y\":100,\"wires\":[[]]},{\"id\":\"e3b13d35.c4cfd\",\"type\":\"change\",\"z\":\"21106466.70e60c\",\"name\":\"\",\"rules\":[{\"t\":\"set\",\"p\":\"ui_add_schedule_payload\",\"pt\":\"flow\",\"to\":\"payload\",\"tot\":\"msg\"}],\"action\":\"\",\"property\":\"\",\"from\":\"\",\"to\":\"\",\"reg\":false,\"x\":400,\"y\":140,\"wires\":[[]]},{\"id\":\"d8d4beef.ba71d\",\"type\":\"change\",\"z\":\"21106466.70e60c\",\"name\":\"\",\"rules\":[{\"t\":\"set\",\"p\":\"ui_add_schedule_expression\",\"pt\":\"flow\",\"to\":\"payload\",\"tot\":\"msg\"}],\"action\":\"\",\"property\":\"\",\"from\":\"\",\"to\":\"\",\"reg\":false,\"x\":410,\"y\":180,\"wires\":[[]]},{\"id\":\"c2de3df3.b4691\",\"type\":\"change\",\"z\":\"21106466.70e60c\",\"name\":\"\",\"rules\":[{\"t\":\"set\",\"p\":\"payload\",\"pt\":\"msg\",\"to\":\"{}\",\"tot\":\"json\"},{\"t\":\"set\",\"p\":\"payload.command\",\"pt\":\"msg\",\"to\":\"add\",\"tot\":\"str\"},{\"t\":\"set\",\"p\":\"payload.payload\",\"pt\":\"msg\",\"to\":\"ui_add_schedule_payload\",\"tot\":\"flow\"},{\"t\":\"set\",\"p\":\"payload.name\",\"pt\":\"msg\",\"to\":\"ui_add_schedule_name\",\"tot\":\"flow\"},{\"t\":\"set\",\"p\":\"payload.expression\",\"pt\":\"msg\",\"to\":\"ui_add_schedule_expression\",\"tot\":\"flow\"},{\"t\":\"set\",\"p\":\"payload.payloadType\",\"pt\":\"msg\",\"to\":\"str\",\"tot\":\"str\"}],\"action\":\"\",\"property\":\"\",\"from\":\"\",\"to\":\"\",\"reg\":false,\"x\":340,\"y\":300,\"wires\":[[\"81360336.f7e43\",\"43e9895e.8605a8\"]]},{\"id\":\"81360336.f7e43\",\"type\":\"cronplus\",\"z\":\"21106466.70e60c\",\"name\":\"dyn schedules\",\"outputField\":\"payload\",\"timeZone\":\"\",\"persistDynamic\":true,\"commandResponseMsgOutput\":\"output2\",\"outputs\":2,\"options\":[],\"x\":800,\"y\":300,\"wires\":[[\"95207c41.96f1a\"],[\"19c90ed9.4b4a31\"]]},{\"id\":\"88ceb596.c48648\",\"type\":\"ui_toast\",\"z\":\"21106466.70e60c\",\"position\":\"top right\",\"displayTime\":\"3\",\"highlight\":\"\",\"sendall\":true,\"outputs\":0,\"ok\":\"OK\",\"cancel\":\"\",\"topic\":\"\",\"name\":\"\",\"x\":810,\"y\":500,\"wires\":[]},{\"id\":\"51778764.7dc538\",\"type\":\"catch\",\"z\":\"21106466.70e60c\",\"name\":\"\",\"scope\":null,\"uncaught\":false,\"x\":140,\"y\":500,\"wires\":[[\"bc7a8f0a.eb15c\",\"4f492a55.ff17b4\"]]},{\"id\":\"bc7a8f0a.eb15c\",\"type\":\"ui_toast\",\"z\":\"21106466.70e60c\",\"position\":\"top right\",\"displayTime\":\"3\",\"highlight\":\"red\",\"outputs\":0,\"ok\":\"OK\",\"cancel\":\"\",\"topic\":\"Error...\",\"name\":\"\",\"x\":350,\"y\":500,\"wires\":[]},{\"id\":\"43e9895e.8605a8\",\"type\":\"ui_button\",\"z\":\"21106466.70e60c\",\"name\":\"Refresh\",\"group\":\"d6a1695f.c376f8\",\"order\":6,\"width\":\"1\",\"height\":\"1\",\"passthru\":true,\"label\":\"\",\"tooltip\":\"Get status of jobs\",\"color\":\"\",\"bgcolor\":\"\",\"icon\":\"fa-refresh\",\"payload\":\"\",\"payloadType\":\"date\",\"topic\":\"list-all\",\"x\":560,\"y\":320,\"wires\":[[\"81360336.f7e43\"]]},{\"id\":\"b3ad9498.ca2c88\",\"type\":\"ui_text_input\",\"z\":\"21106466.70e60c\",\"name\":\"\",\"label\":\"Expression\",\"tooltip\":\"CRON expression\",\"group\":\"d6a1695f.c376f8\",\"order\":3,\"width\":\"4\",\"height\":\"1\",\"passthru\":true,\"mode\":\"text\",\"delay\":\"100\",\"topic\":\"\",\"x\":150,\"y\":180,\"wires\":[[\"35c93639.1b4fda\",\"d8d4beef.ba71d\"]]},{\"id\":\"74693f08.e64c4\",\"type\":\"ui_text_input\",\"z\":\"21106466.70e60c\",\"name\":\"\",\"label\":\"Name\",\"tooltip\":\"Schedule Name\",\"group\":\"d6a1695f.c376f8\",\"order\":2,\"width\":\"4\",\"height\":\"1\",\"passthru\":true,\"mode\":\"text\",\"delay\":\"100\",\"topic\":\"\",\"x\":130,\"y\":100,\"wires\":[[\"4cac7726.7daf48\"]]},{\"id\":\"17e038e.7419bc7\",\"type\":\"ui_button\",\"z\":\"21106466.70e60c\",\"name\":\"\",\"group\":\"d6a1695f.c376f8\",\"order\":5,\"width\":\"3\",\"height\":\"1\",\"passthru\":false,\"label\":\"Add\",\"tooltip\":\"Add or update named schedule\",\"color\":\"\",\"bgcolor\":\"\",\"icon\":\"send\",\"payload\":\"\",\"payloadType\":\"str\",\"topic\":\"\",\"x\":130,\"y\":300,\"wires\":[[\"c2de3df3.b4691\"]]},{\"id\":\"440d4e3.ab64fb\",\"type\":\"ui_text_input\",\"z\":\"21106466.70e60c\",\"name\":\"\",\"label\":\"Payload\",\"tooltip\":\"Payload to send when schedule fires\",\"group\":\"d6a1695f.c376f8\",\"order\":4,\"width\":\"4\",\"height\":\"1\",\"passthru\":true,\"mode\":\"text\",\"delay\":\"100\",\"topic\":\"\",\"x\":140,\"y\":140,\"wires\":[[\"e3b13d35.c4cfd\"]]},{\"id\":\"e3ea0c.b99c05f8\",\"type\":\"ui_template\",\"z\":\"21106466.70e60c\",\"group\":\"d6a1695f.c376f8\",\"name\":\"\",\"order\":7,\"width\":\"16\",\"height\":\"5\",\"format\":\"\\u003cstyle type=\\\"text\u002Fcss\\\"\\u003e\\n.t1  {border-collapse:collapse;border-spacing:0;border-color:#ccc;}\\n.t1 td{font-family:Arial, sans-serif;font-size:14px;padding:8px 3px;border-style:solid;border-width:0px;overflow:hidden;word-break:normal;border-top-width:1px;border-bottom-width:1px;border-color:#ccc;color:#333;background-color:#fff;}\\n.t1 th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#ccc;color:#333;background-color:#f0f0f0;}\\n.t1 .t1-36r9{background-color:#000000;color:#ffffff;text-align:left;vertical-align:top}\\n.t1 .t1-x2zo{background-color:#c0c0c0;font-size:small;text-align:left;vertical-align:top}\\n.t1 .t1-o73e{background-color:#c0c0c0;font-size:small;text-align:center;vertical-align:top}\\n.t1 .t1-5qt9{font-size:small;text-align:left;vertical-align:top}\\n.t1 .t1-5qta{font-size:small;text-align:center;vertical-align:middle}\\n\\u003c\u002Fstyle\\u003e\\n\\u003ctable class=\\\"t1\\\"\\u003e\\n  \\u003ctr\\u003e\\n    \\u003cth class=\\\"t1-36r9\\\" colspan=\\\"9\\\"\\u003eCRON Schedules\\u003c\u002Fth\\u003e\\n  \\u003c\u002Ftr\\u003e\\n  \\u003ctr\\u003e\\n    \\u003ctd class=\\\"t1-x2zo\\\"\\u003eName\\u003c\u002Ftd\\u003e\\n    \\u003ctd class=\\\"t1-x2zo\\\"\\u003eExpression\\u003c\u002Ftd\\u003e\\n    \\u003ctd class=\\\"t1-x2zo\\\"\\u003ePayload\\u003c\u002Ftd\\u003e\\n    \\u003ctd class=\\\"t1-x2zo\\\"\\u003eDescription\\u003c\u002Ftd\\u003e\\n    \\u003ctd class=\\\"t1-x2zo\\\"\\u003eNext run\\u003c\u002Ftd\\u003e\\n    \\u003ctd class=\\\"t1-x2zo\\\"\\u003eState\\u003c\u002Ftd\\u003e\\n    \\u003ctd class=\\\"t1-o73e\\\"\\u003eDelete\\u003c\u002Ftd\\u003e\\n    \\u003ctd class=\\\"t1-o73e\\\"\\u003ePause\\u003c\u002Ftd\\u003e\\n    \\u003ctd class=\\\"t1-o73e\\\"\\u003eResume\\u003c\u002Ftd\\u003e\\n  \\u003c\u002Ftr\\u003e\\n  \\u003ctr  ng-repeat=\\\"item in msg.payload\\\"\\u003e\\n    \\u003ctd class=\\\"t1-5qt9\\\"\\u003e{{item.config.name}}\\u003c\u002Ftd\\u003e\\n    \\u003ctd class=\\\"t1-5qt9\\\" style=\\\"white-space: nowrap\\\" nowrap\\u003e{{item.config.expression}}\\u003c\u002Ftd\\u003e\\n    \\u003ctd class=\\\"t1-5qt9\\\"\\u003e{{item.config.payload}}\\u003c\u002Ftd\\u003e\\n    \\u003ctd class=\\\"t1-5qt9\\\"\\u003e{{item.status.description}}\\u003c\u002Ftd\\u003e\\n    \\u003ctd class=\\\"t1-5qt9\\\"\\u003e{{item.status.nextDescription}}\\u003c\u002Ftd\\u003e\\n    \\u003ctd class=\\\"t1-5qta\\\"\\u003e\\u003ci class=\\\"fa fa-{{item.status.isRunning ? 'play' : 'pause'}}\\\"\\u003e \\u003c\u002Fi\\u003e\\u003c\u002Ftd\\u003e\\n\\n   \\u003ctd class=\\\"t1-5qta\\\"\\u003e\\n       \\u003cmd-button class=\\\"md-raised\\\"\\n        ng-click=\\\"send([[{payload:{command:'remove', name: item.config.name}}, {payload:{command:'list-all'}}]]);\\\"\\u003e \\u003ci class=\\\"fa fa-trash\\\"\\u003e \\u003c\u002Fi\\u003e\\u003c\u002Fmd-button\\u003e\\n   \\u003c\u002Ftd\\u003e\\n   \\u003ctd class=\\\"t1-5qta\\\"\\u003e\\n       \\u003cmd-button class=\\\"button\\\" \\n       ng-click=\\\"send([[{payload:{command:'pause', name: item.config.name}}, {payload:{command:'list-all'}}]]);\\\"\\u003e \\u003ci class=\\\"fa fa-pause\\\"\\u003e \\u003c\u002Fi\\u003e\\u003c\u002Fmd-button\\u003e\\n   \\u003c\u002Ftd\\u003e\\n   \\u003ctd class=\\\"t1-5qta\\\"\\u003e\\n       \\u003cmd-button class=\\\"button\\\" \\n       ng-click=\\\"send([[{payload:{command:'start', name: item.config.name}}, {payload:{command:'list-all'}}]]);\\\"\\u003e \\u003ci class=\\\"fa fa-play\\\"\\u003e \\u003c\u002Fi\\u003e\\u003c\u002Fmd-button\\u003e\\n   \\u003c\u002Ftd\\u003e\\n\\n  \\u003c\u002Ftr\\u003e\\n\\n \\u003c\u002Ftbody\\u003e\\n\\u003c\u002Ftable\\u003e\\n\\n\\u003c!--\\u003ctable id=\\\"table\\\" class=\\\"table table-striped table-responsive-md btn-table\\\" \\u003e--\\u003e\\n\\u003c!--     \\u003ctr\\u003e--\\u003e\\n\\u003c!--        \\u003cth\\u003eName\\u003c\u002Fth\\u003e --\\u003e\\n\\u003c!--        \\u003cth\\u003eExpression\\u003c\u002Fth\\u003e --\\u003e\\n\\u003c!--        \\u003cth\\u003ePayload\\u003c\u002Fth\\u003e --\\u003e\\n\\u003c!--        \\u003cth\\u003eDescription\\u003c\u002Fth\\u003e--\\u003e\\n\\u003c!--        \\u003cth\\u003eNext run\\u003c\u002Fth\\u003e--\\u003e\\n\\u003c!--        \\u003cth\\u003eState\\u003c\u002Fth\\u003e--\\u003e\\n\\u003c!--        \\u003cth\\u003eDelete\\u003c\u002Fth\\u003e--\\u003e\\n\\u003c!--        \\u003cth\\u003ePause\\u003c\u002Fth\\u003e--\\u003e\\n\\u003c!--        \\u003cth\\u003eResume\\u003c\u002Fth\\u003e--\\u003e\\n\\u003c!-- \\u003c\u002Ftr\\u003e--\\u003e\\n\\u003c!-- \\u003ctbody\\u003e--\\u003e\\n\\u003c!-- \\u003ctr ng-repeat=\\\"item in msg.payload\\\"\\u003e--\\u003e\\n\\u003c!--   \\u003ctd \\u003e{{item.config.name}}\\u003c\u002Ftd\\u003e--\\u003e\\n\\u003c!--   \\u003ctd style=\\\"white-space: nowrap\\\" nowrap\\u003e{{item.config.expression}}\\u003c\u002Ftd\\u003e--\\u003e\\n\\u003c!--   \\u003ctd \\u003e{{item.config.payload}}\\u003c\u002Ftd\\u003e--\\u003e\\n\\u003c!--   \\u003ctd \\u003e{{item.status.description}}\\u003c\u002Ftd\\u003e--\\u003e\\n\\u003c!--   \\u003ctd \\u003e{{item.status.nextDescription}}\\u003c\u002Ftd\\u003e--\\u003e\\n\\u003c!--   \\u003ctd \\u003e{{item.status.isRunning ? 'Running' : 'Paused'}}\\u003c\u002Ftd\\u003e--\\u003e\\n\\u003c!--   \\u003ctd\\u003e--\\u003e\\n\\u003c!--       \\u003cmd-button class=\\\"md-raised\\\"--\\u003e\\n\\u003c!--        ng-click=\\\"send([[{payload:{command:'remove', name: item.config.name}}, {payload:{command:'list-all'}}]]);\\\"\\u003e \\u003ci class=\\\"fa fa-trash\\\"\\u003e \\u003c\u002Fi\\u003e\\u003c\u002Fmd-button\\u003e--\\u003e\\n\\u003c!--   \\u003c\u002Ftd\\u003e--\\u003e\\n\\u003c!--   \\u003ctd\\u003e--\\u003e\\n\\u003c!--       \\u003cmd-button class=\\\"button\\\" --\\u003e\\n\\u003c!--       ng-click=\\\"send([[{payload:{command:'pause', name: item.config.name}}, {payload:{command:'list-all'}}]]);\\\"\\u003e \\u003ci class=\\\"fa fa-pause\\\"\\u003e \\u003c\u002Fi\\u003e\\u003c\u002Fmd-button\\u003e--\\u003e\\n\\u003c!--   \\u003c\u002Ftd\\u003e--\\u003e\\n\\u003c!--   \\u003ctd\\u003e--\\u003e\\n\\u003c!--       \\u003cmd-button class=\\\"button\\\" --\\u003e\\n\\u003c!--       ng-click=\\\"send([[{payload:{command:'start', name: item.config.name}}, {payload:{command:'list-all'}}]]);\\\"\\u003e \\u003ci class=\\\"fa fa-play\\\"\\u003e \\u003c\u002Fi\\u003e\\u003c\u002Fmd-button\\u003e--\\u003e\\n\\u003c!--   \\u003c\u002Ftd\\u003e--\\u003e\\n\\u003c!-- \\u003c\u002Ftr\\u003e--\\u003e\\n\\u003c!-- \\u003c\u002Ftbody\\u003e--\\u003e\\n\\u003c!--\\u003c\u002Ftable\\u003e--\\u003e\\n\\n\",\"storeOutMessages\":false,\"fwdInMessages\":false,\"resendOnRefresh\":false,\"templateScope\":\"local\",\"x\":520,\"y\":400,\"wires\":[[\"81360336.f7e43\"]]},{\"id\":\"650dc2c3.f8ef2c\",\"type\":\"function\",\"z\":\"21106466.70e60c\",\"name\":\"Make table data\",\"func\":\"if(!msg.payload || !msg.payload.result || !msg.payload.result.length){\\n    msg.payload = [];\\n    return msg;\\n}\\n\\nmsg.payload = msg.payload.result;\\nreturn msg;\",\"outputs\":1,\"noerr\":0,\"x\":340,\"y\":400,\"wires\":[[\"e3ea0c.b99c05f8\"]]},{\"id\":\"4f492a55.ff17b4\",\"type\":\"debug\",\"z\":\"21106466.70e60c\",\"name\":\"\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"true\",\"targetType\":\"full\",\"x\":310,\"y\":540,\"wires\":[]},{\"id\":\"780d7131.671b7\",\"type\":\"ui_template\",\"z\":\"21106466.70e60c\",\"group\":\"d6a1695f.c376f8\",\"name\":\"CRON Info\",\"order\":8,\"width\":\"16\",\"height\":\"12\",\"format\":\"\\u003cdiv\\u003e\\n\\u003cpre\\u003eCRON Format...\\n\\n    s  m  h  md m  wd y\\n    |  |  |  |  |  |  |\\n    *  *  *  *  *  *  *    Field              Allowed values    Special symbols\\n    |  |  |  |  |  |  |    -----------------  ---------------   ---------------\\n    `--|--|--|--|--|--|-\\u003e  Second (optional)  0-59              * \u002F , -\\n       `--|--|--|--|--|-\\u003e  Minute             0-59              * \u002F , -\\n          `--|--|--|--|-\\u003e  Hour               0-23              * \u002F , -\\n             `--|--|--|-\\u003e  Day of Month       1-31              * \u002F , - L W\\n                `--|--|-\\u003e  Month              1-12 or JAN-DEC   * \u002F , -\\n                   `--|-\\u003e  Day of Week        0-7 or SUN-SAT    * \u002F , - L #\\n                      `-\\u003e  Year (optional)    1970-2099         * \u002F , -\\n                \\n\\u003c\u002Fpre\\u003e    \\n\\u003c\u002Fdiv\\u003e\\n\\n\\u003cstyle type=\\\"text\u002Fcss\\\"\\u003e\\n.t2  {border-collapse:collapse;border-spacing:0;border-color:#ccc;}\\n.t2 td{font-family:Arial, sans-serif;font-size:14px;padding:2px 2px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#ccc;color:#333;background-color:#fff;}\\n.t2 th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#ccc;color:#333;background-color:#f0f0f0;}\\n.t2 .t2-dg6o{background-color:#000000;color:#ffffff;text-align:left;vertical-align:top}\\n.t2 .t2-6e8n{font-weight:bold;background-color:#c0c0c0;border-color:inherit;text-align:left;vertical-align:top}\\n.t2 .t2-0pky{border-color:inherit;text-align:left;vertical-align:top}\\n\\u003c\u002Fstyle\\u003e\\n\\u003ctable class=\\\"t2\\\"\\u003e\\n  \\u003ctr\\u003e\\n    \\u003cth class=\\\"t2-dg6o\\\" colspan=\\\"2\\\"\\u003eExample CRON Expressions\\u003c\u002Fth\\u003e\\n  \\u003c\u002Ftr\\u003e\\n  \\u003ctr\\u003e\\n    \\u003ctd class=\\\"t2-6e8n\\\"\\u003eExpression\\u003c\u002Ftd\\u003e\\n    \\u003ctd class=\\\"t2-6e8n\\\"\\u003eDescription\\u003c\u002Ftd\\u003e\\n  \\u003c\u002Ftr\\u003e\\n  \\u003ctr\\u003e\\n    \\u003ctd class=\\\"t2-0pky\\\"\\u003e* * * * * *\\u003c\u002Ftd\\u003e\\n    \\u003ctd class=\\\"t2-0pky\\\"\\u003eEvery Second\\u003c\u002Ftd\\u003e\\n  \\u003c\u002Ftr\\u003e\\n  \\u003ctr\\u003e\\n    \\u003ctd class=\\\"t2-0pky\\\"\\u003e0 * * * * *\\u003c\u002Ftd\\u003e\\n    \\u003ctd class=\\\"t2-0pky\\\"\\u003eEvery minute\\u003c\u002Ftd\\u003e\\n  \\u003c\u002Ftr\\u003e\\n  \\u003ctr\\u003e\\n    \\u003ctd class=\\\"t2-0pky\\\"\\u003e0 *\u002F10 * * * *\\u003c\u002Ftd\\u003e\\n    \\u003ctd class=\\\"t2-0pky\\\"\\u003eEvery 10 minutes\\u003c\u002Ftd\\u003e\\n  \\u003c\u002Ftr\\u003e\\n  \\u003ctr\\u003e\\n    \\u003ctd class=\\\"t2-0pky\\\"\\u003e0 *\u002F20 1 * * *\\u003c\u002Ftd\\u003e\\n    \\u003ctd class=\\\"t2-0pky\\\"\\u003eEvery 20 minutes, between 01:00 AM and 01:59 AM\\u003c\u002Ftd\\u003e\\n  \\u003c\u002Ftr\\u003e\\n  \\u003ctr\\u003e\\n    \\u003ctd class=\\\"t2-0pky\\\"\\u003e0 15,30,45 * * * *\\u003c\u002Ftd\\u003e\\n    \\u003ctd class=\\\"t2-0pky\\\"\\u003eAt 15, 30, and 45 minutes past the hour\\u003c\u002Ftd\\u003e\\n  \\u003c\u002Ftr\\u003e\\n  \\u003ctr\\u003e\\n    \\u003ctd class=\\\"t2-0pky\\\"\\u003e0 0 12 * * *\\u003c\u002Ftd\\u003e\\n    \\u003ctd class=\\\"t2-0pky\\\"\\u003eEvery day at noon - 12pm\\u003c\u002Ftd\\u003e\\n  \\u003c\u002Ftr\\u003e\\n  \\u003ctr\\u003e\\n    \\u003ctd class=\\\"t2-0pky\\\"\\u003e0 0 2 29 FEB * 2020-2040\\u003c\u002Ftd\\u003e\\n    \\u003ctd class=\\\"t2-0pky\\\"\\u003eAt 02:00 AM, on day 29 of the month, only in February, every 4 years, 2020 through 2040\\u003c\u002Ftd\\u003e\\n  \\u003c\u002Ftr\\u003e\\n  \\u003ctr\\u003e\\n    \\u003ctd class=\\\"t2-0pky\\\"\\u003e0 0 7 * *\\u003c\u002Ftd\\u003e\\n    \\u003ctd class=\\\"t2-0pky\\\"\\u003eMON#1 * At 07:00 AM, on the first Monday of the month\\u003c\u002Ftd\\u003e\\n  \\u003c\u002Ftr\\u003e\\n  \\u003ctr\\u003e\\n    \\u003ctd class=\\\"t2-0pky\\\"\\u003e0 0 12 * JAN,FEB,MAR,APR *\\u003c\u002Ftd\\u003e\\n    \\u003ctd class=\\\"t2-0pky\\\"\\u003eEvery day at noon in January, February, March and April\\u003c\u002Ftd\\u003e\\n  \\u003c\u002Ftr\\u003e\\n  \\u003ctr\\u003e\\n    \\u003ctd class=\\\"t2-0pky\\\"\\u003e* * 1W * *\\u003c\u002Ftd\\u003e\\n    \\u003ctd class=\\\"t2-0pky\\\"\\u003eEvery minute, on the first weekday of the month\\u003c\u002Ftd\\u003e\\n  \\u003c\u002Ftr\\u003e\\n  \\u003ctr\\u003e\\n    \\u003ctd class=\\\"t2-0pky\\\"\\u003e* * * * Tue#3\\u003c\u002Ftd\\u003e\\n    \\u003ctd class=\\\"t2-0pky\\\"\\u003eEvery minute, on the third Tuesday of the month\\u003c\u002Ftd\\u003e\\n  \\u003c\u002Ftr\\u003e\\n  \\u003ctr\\u003e\\n    \\u003ctd class=\\\"t2-0pky\\\"\\u003e0 12 * * MONL\\u003c\u002Ftd\\u003e\\n    \\u003ctd class=\\\"t2-0pky\\\"\\u003eAt 12:00 PM, on the last Monday of the month\\u003c\u002Ftd\\u003e\\n  \\u003c\u002Ftr\\u003e\\n\\u003c\u002Ftable\\u003e\",\"storeOutMessages\":true,\"fwdInMessages\":true,\"templateScope\":\"local\",\"x\":790,\"y\":140,\"wires\":[[]]},{\"id\":\"478fbbd.cfa1c44\",\"type\":\"link in\",\"z\":\"21106466.70e60c\",\"name\":\"Cron Events\",\"links\":[\"68f2f76e.aba708\",\"95207c41.96f1a\"],\"x\":610,\"y\":500,\"wires\":[[\"88ceb596.c48648\",\"d85796ff.a49238\"]],\"l\":true},{\"id\":\"d85796ff.a49238\",\"type\":\"debug\",\"z\":\"21106466.70e60c\",\"name\":\"\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"true\",\"targetType\":\"full\",\"x\":770,\"y\":560,\"wires\":[]},{\"id\":\"268d2762.906e88\",\"type\":\"comment\",\"z\":\"21106466.70e60c\",\"name\":\"Dynamic cron schedules - setup by dashboard\",\"info\":\"\",\"x\":510,\"y\":40,\"wires\":[]},{\"id\":\"95207c41.96f1a\",\"type\":\"link out\",\"z\":\"21106466.70e60c\",\"name\":\"\",\"links\":[\"478fbbd.cfa1c44\"],\"x\":935,\"y\":280,\"wires\":[]},{\"id\":\"a17cdbbc.8b2328\",\"type\":\"ui_ui_control\",\"z\":\"21106466.70e60c\",\"name\":\"\",\"events\":\"all\",\"x\":320,\"y\":340,\"wires\":[[\"43e9895e.8605a8\"]]},{\"id\":\"19c90ed9.4b4a31\",\"type\":\"delay\",\"z\":\"21106466.70e60c\",\"name\":\"\",\"pauseType\":\"delay\",\"timeout\":\"200\",\"timeoutUnits\":\"milliseconds\",\"rate\":\"1\",\"nbRateUnits\":\"1\",\"rateUnits\":\"second\",\"randomFirst\":\"1\",\"randomLast\":\"5\",\"randomUnits\":\"seconds\",\"drop\":false,\"x\":150,\"y\":400,\"wires\":[[\"650dc2c3.f8ef2c\"]]},{\"id\":\"d6a1695f.c376f8\",\"type\":\"ui_group\",\"z\":\"\",\"name\":\"Default\",\"tab\":\"c08b5841.22f118\",\"order\":1,\"disp\":false,\"width\":\"16\",\"collapse\":false},{\"id\":\"c08b5841.22f118\",\"type\":\"ui_tab\",\"z\":\"\",\"name\":\"CRON\",\"icon\":\"dashboard\",\"order\":2,\"disabled\":false,\"hidden\":false}]",{"name":75,"path":76,"url":77,"downloadUrl":78,"flow":79},"dynamic schedules","examples\u002Fdynamic schedules.json","https:\u002F\u002Fgithub.com\u002FSteve-Mcl\u002Fnode-red-contrib-cron-plus\u002Fblob\u002Fmaster\u002Fexamples\u002Fdynamic%20schedules.json","https:\u002F\u002Fraw.githubusercontent.com\u002FSteve-Mcl\u002Fnode-red-contrib-cron-plus\u002Fmaster\u002Fexamples\u002Fdynamic%20schedules.json","[{\"id\":\"ac3afbb7.56f7a8\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"describe 0 *\u002F5 * * * MON *\",\"topic\":\"\",\"payload\":\"{\\\"command\\\":\\\"describe\\\",\\\"expression\\\":\\\"0 *\u002F5 * * * MON *\\\"}\",\"payloadType\":\"json\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":490,\"y\":80,\"wires\":[[\"65892a57.612d44\"]]},{\"id\":\"65892a57.612d44\",\"type\":\"cronplus\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"\",\"outputField\":\"payload\",\"timeZone\":\"\",\"persistDynamic\":false,\"commandResponseMsgOutput\":\"output2\",\"outputs\":2,\"options\":[{\"name\":\"e15\",\"topic\":\"Every 15\",\"payloadType\":\"default\",\"payload\":\"\",\"expressionType\":\"cron\",\"expression\":\"0 15,30,45 * * * *\",\"location\":\"\",\"offset\":\"0\",\"solarType\":\"all\",\"solarEvents\":\"sunrise,sunset\"},{\"name\":\"noon\",\"topic\":\"noon\",\"payloadType\":\"default\",\"payload\":\"\",\"expressionType\":\"cron\",\"expression\":\"0 0 12 * * *\",\"location\":\"\",\"offset\":\"0\",\"solarType\":\"all\",\"solarEvents\":\"sunrise,sunset\"}],\"x\":520,\"y\":380,\"wires\":[[\"8a452815.9ceb68\"],[\"e60daf12.48c83\"]]},{\"id\":\"e55fda59.f37f18\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"Get list of schedules\",\"topic\":\"list-all\",\"payload\":\"\",\"payloadType\":\"date\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":470,\"y\":160,\"wires\":[[\"65892a57.612d44\"]]},{\"id\":\"8a452815.9ceb68\",\"type\":\"debug\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"Sched Trigger\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"true\",\"targetType\":\"full\",\"x\":740,\"y\":340,\"wires\":[]},{\"id\":\"e60daf12.48c83\",\"type\":\"debug\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"Control Reply\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"true\",\"targetType\":\"full\",\"x\":740,\"y\":380,\"wires\":[]},{\"id\":\"16c930f5.ec3a9f\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"add every 6 (maxCount 3)\",\"topic\":\"add\",\"payload\":\"{\\\"command\\\":\\\"add\\\",\\\"name\\\":\\\"every 6\\\",\\\"expression\\\":\\\"*\u002F6 * * * * * *\\\",\\\"type\\\":\\\"default\\\",\\\"limit\\\":3}\",\"payloadType\":\"json\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":210,\"y\":220,\"wires\":[[\"65892a57.612d44\"]]},{\"id\":\"ad104abb.fc4a28\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"remove every 6\",\"topic\":\"remove every 6\",\"payload\":\"{\\\"command\\\": \\\"remove\\\", \\\"name\\\":\\\"every 6\\\"}\",\"payloadType\":\"json\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":180,\"y\":260,\"wires\":[[\"65892a57.612d44\"]]},{\"id\":\"9126a056.6de91\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"stop every 6\",\"topic\":\"\",\"payload\":\"{\\\"command\\\": \\\"stop\\\", \\\"name\\\":\\\"every 6\\\"}\",\"payloadType\":\"json\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":170,\"y\":300,\"wires\":[[\"65892a57.612d44\"]]},{\"id\":\"e8abe66.6a0aa18\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"pause every 6\",\"topic\":\"\",\"payload\":\"{\\\"command\\\": \\\"pause\\\", \\\"name\\\":\\\"every 6\\\"}\",\"payloadType\":\"json\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":170,\"y\":340,\"wires\":[[\"65892a57.612d44\"]]},{\"id\":\"9e8a3202.ae3d9\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"add every 8\",\"topic\":\"_ignore_\",\"payload\":\"{\\\"command\\\":\\\"add\\\",\\\"name\\\":\\\"every 8\\\",\\\"expression\\\":\\\"*\u002F8 * * * * * *\\\",\\\"payload\\\":\\\"hi every 8\\\",\\\"type\\\":\\\"str\\\"}\",\"payloadType\":\"json\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":170,\"y\":80,\"wires\":[[\"65892a57.612d44\"]]},{\"id\":\"276fbb6f.b78e94\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"remove every 8\",\"topic\":\"remove\",\"payload\":\"every 8\",\"payloadType\":\"str\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":180,\"y\":120,\"wires\":[[\"65892a57.612d44\"]]},{\"id\":\"540f9bdc.808cf4\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"start every 6\",\"topic\":\"start\",\"payload\":\"every 6\",\"payloadType\":\"str\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":170,\"y\":380,\"wires\":[[\"65892a57.612d44\"]]},{\"id\":\"f7509f08.69bb9\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"remove-all-dynamic\",\"topic\":\"remove-all-dynamic\",\"payload\":\"\",\"payloadType\":\"date\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":190,\"y\":480,\"wires\":[[\"65892a57.612d44\"]]},{\"id\":\"e057de86.30bfa\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"pause-all\",\"topic\":\"\",\"payload\":\"{\\\"command\\\": \\\"pause-all\\\"}\",\"payloadType\":\"json\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":160,\"y\":540,\"wires\":[[\"65892a57.612d44\"]]},{\"id\":\"b247f14a.cf2f\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"start-all\",\"topic\":\"start-all\",\"payload\":\"\",\"payloadType\":\"date\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":150,\"y\":700,\"wires\":[[\"65892a57.612d44\"]]},{\"id\":\"6ea9b27a.04bf6c\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"stop-all\",\"topic\":\"stop-all\",\"payload\":\"{\\\"command\\\": \\\"stop-all\\\"}\",\"payloadType\":\"json\",\"repeat\":\"\",\"crontab\":\"\",\"once\":true,\"onceDelay\":0.1,\"x\":160,\"y\":580,\"wires\":[[\"65892a57.612d44\"]]},{\"id\":\"4a1dc32e.9dbf1c\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"add 3 schedules\",\"topic\":\"add\",\"payload\":\"[{\\\"command\\\":\\\"add\\\",\\\"name\\\":\\\"every 5 mins on monday\\\",\\\"expression\\\":\\\"0 *\u002F5 * * * MON *\\\",\\\"payload\\\":\\\"hi every 5 - it must be monday\\\",\\\"type\\\":\\\"str\\\",\\\"limit\\\":3},{\\\"command\\\":\\\"add\\\",\\\"name\\\":\\\"every 10 mins on tuesday\\\",\\\"expression\\\":\\\"0 *\u002F10 * * * TUE *\\\",\\\"payload\\\":\\\"It must be tuesday\\\",\\\"type\\\":\\\"str\\\",\\\"limit\\\":3},{\\\"command\\\":\\\"add\\\",\\\"name\\\":\\\"every 20s Wed~Sun\\\",\\\"expression\\\":\\\"*\u002F20 * * * * 3-7 *\\\",\\\"payload\\\":\\\"Hi wed~sun\\\",\\\"type\\\":\\\"default\\\",\\\"limit\\\":3}]\",\"payloadType\":\"json\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":180,\"y\":440,\"wires\":[[\"65892a57.612d44\"]]},{\"id\":\"6dde0693.66ed08\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"describe array of expressions\",\"topic\":\"\",\"payload\":\"[{\\\"command\\\":\\\"describe\\\",\\\"expression\\\":\\\"0 0 2 29 FEB * 2020-2040\\\"},{\\\"command\\\":\\\"describe\\\",\\\"expression\\\":\\\"4 *\u002F7 * * * 1-4 *\\\"},{\\\"command\\\":\\\"describe\\\",\\\"expression\\\":\\\"0\u002F20 * * * * MON *\\\"}]\",\"payloadType\":\"json\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":500,\"y\":120,\"wires\":[[\"65892a57.612d44\"]]},{\"id\":\"27e00c01.1fd474\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"Get status of \\\"every 8\\\"\",\"topic\":\"status\",\"payload\":\"every 8\",\"payloadType\":\"str\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":200,\"y\":160,\"wires\":[[\"65892a57.612d44\"]]},{\"id\":\"221cb0d1.2321f\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"export all dynamic schedules\",\"topic\":\"\",\"payload\":\"{\\\"command\\\":\\\"export-all-dynamic\\\"}\",\"payloadType\":\"json\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":220,\"y\":820,\"wires\":[[\"65892a57.612d44\"]]},{\"id\":\"482be49c.66898c\",\"type\":\"comment\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"Fully dynamic example demonstrating many functions of CRON-PLUS - see built in help for more info\",\"info\":\"\",\"x\":420,\"y\":40,\"wires\":[]},{\"id\":\"3c39c8ac.e11a08\",\"type\":\"cronplus\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"Tokyo 8am \\u0026 4:30pm, Mon ~ Fri\",\"outputField\":\"payload\",\"timeZone\":\"Asia\u002FTokyo\",\"persistDynamic\":false,\"commandResponseMsgOutput\":\"output1\",\"outputs\":1,\"options\":[{\"name\":\"schedule1\",\"topic\":\"Start-of-shift\",\"payloadType\":\"str\",\"payload\":\"Start work now Tokyo\",\"expressionType\":\"cron\",\"expression\":\"0 0 8 * * 1-5\",\"location\":\"\",\"offset\":\"0\",\"solarType\":\"all\",\"solarEvents\":\"sunrise,sunset\"},{\"name\":\"schedule2\",\"topic\":\"End-of-shift\",\"payloadType\":\"str\",\"payload\":\"Go home Tokyo\",\"expressionType\":\"cron\",\"expression\":\"0 30 16 * * 1-5\",\"location\":\"\",\"offset\":\"0\",\"solarType\":\"all\",\"solarEvents\":\"sunrise,sunset\"}],\"x\":590,\"y\":620,\"wires\":[[\"7945501b.3547\"]]},{\"id\":\"7945501b.3547\",\"type\":\"debug\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":true,\"complete\":\"true\",\"targetType\":\"full\",\"x\":790,\"y\":620,\"wires\":[]},{\"id\":\"7ad3fa7f.e3acd4\",\"type\":\"cronplus\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"Simple every hour Mon ~ Fri\",\"outputField\":\"payload\",\"timeZone\":\"\",\"persistDynamic\":false,\"commandResponseMsgOutput\":\"output1\",\"outputs\":1,\"options\":[{\"name\":\"schedule1\",\"topic\":\"hourly\",\"payloadType\":\"str\",\"payload\":\"Every hour, mon-fri\",\"expressionType\":\"cron\",\"expression\":\"0 0 * * * MON-FRI\",\"location\":\"\",\"offset\":\"0\",\"solarType\":\"all\",\"solarEvents\":\"sunrise,sunset\"}],\"x\":580,\"y\":520,\"wires\":[[\"5f323eb9.e9f7d\"]]},{\"id\":\"5f323eb9.e9f7d\",\"type\":\"debug\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":true,\"complete\":\"payload\",\"targetType\":\"msg\",\"x\":810,\"y\":520,\"wires\":[]},{\"id\":\"48b74cdb.647ea4\",\"type\":\"comment\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"Demonstrating 2 schedules \\u0026 timezone\",\"info\":\"\",\"x\":610,\"y\":580,\"wires\":[]},{\"id\":\"94553308.0c403\",\"type\":\"comment\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"Simple example. Only 1 UI entry so inject button appears\",\"info\":\"\",\"x\":670,\"y\":480,\"wires\":[]},{\"id\":\"2db145e3.78f78a\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"stop-all-dynamic\",\"topic\":\"stop-all-dynamic\",\"payload\":\"\",\"payloadType\":\"date\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":180,\"y\":620,\"wires\":[[\"65892a57.612d44\"]]},{\"id\":\"9ac1b61.86b6d48\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"stop-all-static\",\"topic\":\"stop-all-static\",\"payload\":\"\",\"payloadType\":\"date\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":170,\"y\":660,\"wires\":[[\"65892a57.612d44\"]]},{\"id\":\"81b4094b.d0d778\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"start-all-dynamic\",\"topic\":\"start-all-dynamic\",\"payload\":\"\",\"payloadType\":\"date\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":180,\"y\":740,\"wires\":[[\"65892a57.612d44\"]]},{\"id\":\"b3512276.df97c\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"start-all-static\",\"topic\":\"start-all-static\",\"payload\":\"\",\"payloadType\":\"date\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":170,\"y\":780,\"wires\":[[\"65892a57.612d44\"]]}]",{"name":81,"path":82,"url":83,"downloadUrl":84,"flow":85},"fan out","examples\u002Ffan out.json","https:\u002F\u002Fgithub.com\u002FSteve-Mcl\u002Fnode-red-contrib-cron-plus\u002Fblob\u002Fmaster\u002Fexamples\u002Ffan%20out.json","https:\u002F\u002Fraw.githubusercontent.com\u002FSteve-Mcl\u002Fnode-red-contrib-cron-plus\u002Fmaster\u002Fexamples\u002Ffan%20out.json","[{\"id\":\"627bdce3.7a7084\",\"type\":\"cronplus\",\"z\":\"553814a2.1248ec\",\"name\":\"\",\"outputField\":\"payload\",\"timeZone\":\"\",\"persistDynamic\":false,\"commandResponseMsgOutput\":\"fanOut\",\"outputs\":4,\"options\":[{\"name\":\"every7Sec\",\"topic\":\"schedule1\",\"payloadType\":\"default\",\"payload\":\"\",\"expressionType\":\"cron\",\"expression\":\"0\u002F7 * * * * *\",\"location\":\"48.66557095325139 -55.1513671875\",\"offset\":\"-6\",\"solarType\":\"selected\",\"solarEvents\":\"sunrise,sunset\"},{\"name\":\"every5Sec\",\"topic\":\"schedule2\",\"payloadType\":\"default\",\"payload\":\"\",\"expressionType\":\"cron\",\"expression\":\"0\u002F5 * * * * *\",\"location\":\"\",\"offset\":\"0\",\"solarType\":\"all\",\"solarEvents\":\"sunrise,sunset\"}],\"x\":1020,\"y\":160,\"wires\":[[\"2447422e.4c17fe\"],[\"deb8ddfe.12e6c\"],[\"e3b8f706.cc3248\"],[\"5a7f8737.cb2468\"]]},{\"id\":\"ef0eb1c5.29188\",\"type\":\"inject\",\"z\":\"553814a2.1248ec\",\"name\":\"status-all command\",\"props\":[{\"p\":\"payload\"},{\"p\":\"topic\",\"vt\":\"str\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"topic\":\"status-all\",\"payload\":\"\",\"payloadType\":\"str\",\"x\":810,\"y\":180,\"wires\":[[\"627bdce3.7a7084\"]]},{\"id\":\"2447422e.4c17fe\",\"type\":\"debug\",\"z\":\"553814a2.1248ec\",\"name\":\"Static Schedule 1\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"\",\"statusType\":\"auto\",\"x\":1270,\"y\":84,\"wires\":[]},{\"id\":\"deb8ddfe.12e6c\",\"type\":\"debug\",\"z\":\"553814a2.1248ec\",\"name\":\"Static Schedule 2\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"\",\"statusType\":\"auto\",\"x\":1270,\"y\":116,\"wires\":[]},{\"id\":\"e3b8f706.cc3248\",\"type\":\"debug\",\"z\":\"553814a2.1248ec\",\"name\":\"Dynamic Schedules messages\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"\",\"statusType\":\"auto\",\"x\":1310,\"y\":148,\"wires\":[]},{\"id\":\"5a7f8737.cb2468\",\"type\":\"debug\",\"z\":\"553814a2.1248ec\",\"name\":\"Command responses\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"true\",\"targetType\":\"full\",\"statusVal\":\"\",\"statusType\":\"auto\",\"x\":1280,\"y\":180,\"wires\":[]},{\"id\":\"4167d73a.70d0d8\",\"type\":\"inject\",\"z\":\"553814a2.1248ec\",\"name\":\"add dyn every 6 sec\",\"props\":[{\"p\":\"payload\"},{\"p\":\"topic\",\"vt\":\"str\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"topic\":\"add\",\"payload\":\"{     \\\"command\\\": \\\"add\\\",     \\\"name\\\": \\\"every 6\\\",     \\\"expression\\\": \\\"*\u002F6 * * * * * *\\\",     \\\"expressionType\\\": \\\"cron\\\",     \\\"payloadType\\\": \\\"default\\\",     \\\"limit\\\": 3    }\",\"payloadType\":\"json\",\"x\":810,\"y\":100,\"wires\":[[\"627bdce3.7a7084\"]]},{\"id\":\"79fb4c11.37fac4\",\"type\":\"inject\",\"z\":\"553814a2.1248ec\",\"name\":\"add dyn every 9 sec\",\"props\":[{\"p\":\"payload\"},{\"p\":\"topic\",\"vt\":\"str\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"topic\":\"add\",\"payload\":\"{\\\"command\\\":\\\"add\\\",\\\"name\\\":\\\"every 9\\\",\\\"expression\\\":\\\"*\u002F9 * * * * * *\\\",\\\"expressionType\\\":\\\"cron\\\",\\\"payloadType\\\":\\\"default\\\",\\\"limit\\\":5}\",\"payloadType\":\"json\",\"x\":810,\"y\":140,\"wires\":[[\"627bdce3.7a7084\"]]}]",{"name":87,"path":88,"url":89,"downloadUrl":90,"flow":91},"march sunrise and weekend sunset","examples\u002Fmarch sunrise and weekend sunset.json","https:\u002F\u002Fgithub.com\u002FSteve-Mcl\u002Fnode-red-contrib-cron-plus\u002Fblob\u002Fmaster\u002Fexamples\u002Fmarch%20sunrise%20and%20weekend%20sunset.json","https:\u002F\u002Fraw.githubusercontent.com\u002FSteve-Mcl\u002Fnode-red-contrib-cron-plus\u002Fmaster\u002Fexamples\u002Fmarch%20sunrise%20and%20weekend%20sunset.json","[{\"id\":\"f48678de.0f5e48\",\"type\":\"cronplus\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"sunrise\",\"outputField\":\"payload\",\"timeZone\":\"\",\"persistDynamic\":false,\"commandResponseMsgOutput\":\"output1\",\"outputs\":1,\"options\":[{\"name\":\"schedule1\",\"topic\":\"schedule1\",\"payloadType\":\"default\",\"payload\":\"\",\"expressionType\":\"solar\",\"expression\":\"0 * * * * * *\",\"location\":\"54.80385112692028 -1.58203125\",\"offset\":\"0\",\"solarType\":\"selected\",\"solarEvents\":\"sunrise\"}],\"x\":120,\"y\":540,\"wires\":[[\"d3ade435.4fa688\"]]},{\"id\":\"66fb6941.833ad8\",\"type\":\"debug\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"payload\",\"targetType\":\"msg\",\"x\":470,\"y\":540,\"wires\":[]},{\"id\":\"d3ade435.4fa688\",\"type\":\"switch\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"Is March\",\"property\":\"$parseInteger( $fromMillis(payload.triggerTimestamp, '[M]'), \\\"10\\\" )\",\"propertyType\":\"jsonata\",\"rules\":[{\"t\":\"eq\",\"v\":\"3\",\"vt\":\"str\"}],\"checkall\":\"true\",\"repair\":false,\"outputs\":1,\"x\":280,\"y\":540,\"wires\":[[\"66fb6941.833ad8\"]]},{\"id\":\"8340829a.b599a\",\"type\":\"cronplus\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"sunset\",\"outputField\":\"payload\",\"timeZone\":\"\",\"persistDynamic\":false,\"commandResponseMsgOutput\":\"output1\",\"outputs\":1,\"options\":[{\"name\":\"schedule1\",\"topic\":\"schedule1\",\"payloadType\":\"default\",\"payload\":\"\",\"expressionType\":\"solar\",\"expression\":\"0 * * * * * *\",\"location\":\"54.80385112692028 -1.58203125\",\"offset\":\"0\",\"solarType\":\"selected\",\"solarEvents\":\"sunset\"}],\"x\":110,\"y\":480,\"wires\":[[\"d498ceff.44242\"]]},{\"id\":\"28544799.e76238\",\"type\":\"debug\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"payload\",\"targetType\":\"msg\",\"x\":470,\"y\":480,\"wires\":[]},{\"id\":\"d498ceff.44242\",\"type\":\"switch\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"Is Weekend\",\"property\":\"$fromMillis(payload.triggerTimestamp, '[F]')\",\"propertyType\":\"jsonata\",\"rules\":[{\"t\":\"eq\",\"v\":\"saturday\",\"vt\":\"str\"},{\"t\":\"eq\",\"v\":\"sunday\",\"vt\":\"str\"}],\"checkall\":\"true\",\"repair\":false,\"outputs\":2,\"x\":290,\"y\":480,\"wires\":[[\"28544799.e76238\"],[\"28544799.e76238\"]]}]",{"name":93,"path":94,"url":95,"downloadUrl":96,"flow":97},"solar events","examples\u002Fsolar events.json","https:\u002F\u002Fgithub.com\u002FSteve-Mcl\u002Fnode-red-contrib-cron-plus\u002Fblob\u002Fmaster\u002Fexamples\u002Fsolar%20events.json","https:\u002F\u002Fraw.githubusercontent.com\u002FSteve-Mcl\u002Fnode-red-contrib-cron-plus\u002Fmaster\u002Fexamples\u002Fsolar%20events.json","[{\"id\":\"a6d46dff.aca4d\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"describe solar events 2 locations\",\"topic\":\"\",\"payload\":\"[{\\\"command\\\":\\\"describe\\\",\\\"location\\\":\\\"54.9992500,-1.4170300\\\",\\\"expressionType\\\":\\\"solar\\\",\\\"solarType\\\":\\\"all\\\",\\\"timeZone\\\":\\\"Europe\u002FLondon\\\",\\\"offset\\\":0,\\\"time\\\":\\\"2020-06-03 04:00\\\",\\\"info\\\":\\\"Get all solar events and status for Bents Park (54.9992500,-1.4170300) at 4am\\\"},{\\\"command\\\":\\\"describe\\\",\\\"location\\\":\\\"35.45743499930747 139.63778346776962\\\",\\\"expressionType\\\":\\\"solar\\\",\\\"solarType\\\":\\\"selected\\\",\\\"solarEvents\\\":\\\"sunrise,sunset\\\",\\\"timeZone\\\":\\\"Europe\u002FLondon\\\",\\\"offset\\\":60,\\\"info\\\":\\\"Get sunrise\u002Fsunset times and status at yokohama intercontinental (35.45743499930747 139.63778346776962)\\\"}]\",\"payloadType\":\"json\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":210,\"y\":200,\"wires\":[[\"4eb68abd.a39914\"]]},{\"id\":\"4eb68abd.a39914\",\"type\":\"cronplus\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"\",\"outputField\":\"payload\",\"timeZone\":\"\",\"persistDynamic\":false,\"commandResponseMsgOutput\":\"output2\",\"outputs\":2,\"options\":[{\"name\":\"ukne\",\"topic\":\"uk\u002Fne\u002Fsolar_events\",\"payloadType\":\"str\",\"payload\":\"sunrise-uk\",\"expressionType\":\"solar\",\"expression\":\"0 * * * * * *\",\"location\":\"54.9990878447323 -1.4176440238952634\",\"offset\":\"-235\",\"solarType\":\"all\",\"solarEvents\":\"sunrise,sunset\"},{\"name\":\"antarctica-srss\",\"topic\":\"antarctica\u002Fsun\",\"payloadType\":\"str\",\"payload\":\"antarctica-ss\",\"expressionType\":\"solar\",\"expression\":\"0 * * * * * *\",\"location\":\"-82.43033400458337 20.91796875\",\"offset\":\"-380\",\"solarType\":\"selected\",\"solarEvents\":\"sunrise,sunset\"}],\"x\":480,\"y\":280,\"wires\":[[\"62048115.6a206\"],[\"2d35c203.e28a0e\"]]},{\"id\":\"62048115.6a206\",\"type\":\"debug\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"Schedule Triggered\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"true\",\"targetType\":\"full\",\"x\":730,\"y\":240,\"wires\":[]},{\"id\":\"2d35c203.e28a0e\",\"type\":\"debug\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"Command result\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"true\",\"targetType\":\"full\",\"x\":720,\"y\":280,\"wires\":[]},{\"id\":\"65117054.db183\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"status of all\",\"topic\":\"status-all\",\"payload\":\"\",\"payloadType\":\"date\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":150,\"y\":260,\"wires\":[[\"4eb68abd.a39914\"]]},{\"id\":\"763d247c.bd271c\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"add \\\"sunrise-ny\\\"\",\"topic\":\"\",\"payload\":\"{\\\"command\\\":\\\"add\\\",\\\"name\\\":\\\"sunrise-ny\\\",\\\"payload\\\":\\\"sunrise-ny\\\",\\\"type\\\":\\\"default\\\",\\\"expressionType\\\":\\\"solar\\\",\\\"solarType\\\":\\\"selected\\\",\\\"solarEvents\\\":\\\"sunrise\\\",\\\"location\\\":\\\"40.70807700656229 -73.9995288848877\\\",\\\"offset\\\":0}\",\"payloadType\":\"json\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":160,\"y\":460,\"wires\":[[\"4eb68abd.a39914\"]]},{\"id\":\"875b3729.6779d8\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"status of ukne\",\"topic\":\"status\",\"payload\":\"ukne\",\"payloadType\":\"str\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":150,\"y\":360,\"wires\":[[\"4eb68abd.a39914\"]]},{\"id\":\"f283e407.d89b98\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"status of sunrise-ny\",\"topic\":\"status\",\"payload\":\"sunrise-ny\",\"payloadType\":\"str\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":170,\"y\":500,\"wires\":[[\"4eb68abd.a39914\"]]},{\"id\":\"9101cfca.214a9\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"status of antarctica sunrise\u002Fsunset\",\"topic\":\"status\",\"payload\":\"antarctica-srss\",\"payloadType\":\"str\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":220,\"y\":400,\"wires\":[[\"4eb68abd.a39914\"]]},{\"id\":\"17de80e9.a156ff\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"export-dynamic schedules\",\"topic\":\"export-all-dynamic\",\"payload\":\"\",\"payloadType\":\"date\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":190,\"y\":300,\"wires\":[[\"4eb68abd.a39914\"]]},{\"id\":\"b851327d.642b3\",\"type\":\"inject\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"remove sunrise-ny\",\"topic\":\"remove\",\"payload\":\"sunrise-ny\",\"payloadType\":\"str\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":170,\"y\":540,\"wires\":[[\"4eb68abd.a39914\"]]},{\"id\":\"c4fd78d7.203dd8\",\"type\":\"comment\",\"z\":\"30b25d3f.3e99f2\",\"name\":\"Simple demo of scheduling solar events \\u0026 using the describe command\",\"info\":\"\",\"x\":310,\"y\":160,\"wires\":[]}]",{"name":99,"path":100,"url":101,"downloadUrl":102,"flow":103},"using dates","examples\u002Fusing dates.json","https:\u002F\u002Fgithub.com\u002FSteve-Mcl\u002Fnode-red-contrib-cron-plus\u002Fblob\u002Fmaster\u002Fexamples\u002Fusing%20dates.json","https:\u002F\u002Fraw.githubusercontent.com\u002FSteve-Mcl\u002Fnode-red-contrib-cron-plus\u002Fmaster\u002Fexamples\u002Fusing%20dates.json","[{\"id\":\"2f8ea9ba.cc26d6\",\"type\":\"comment\",\"z\":\"21106466.70e60c\",\"name\":\"Demonstrating fixes times as schedule\",\"info\":\"\",\"x\":430,\"y\":200,\"wires\":[]},{\"id\":\"7cbe8cdf.a5b3d4\",\"type\":\"debug\",\"z\":\"21106466.70e60c\",\"name\":\"\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"true\",\"targetType\":\"full\",\"x\":850,\"y\":360,\"wires\":[]},{\"id\":\"298086f6.37939a\",\"type\":\"inject\",\"z\":\"21106466.70e60c\",\"name\":\"Get status-all\",\"topic\":\"status-all\",\"payload\":\"\",\"payloadType\":\"date\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":370,\"y\":360,\"wires\":[[\"c5be61bb.16781\"]]},{\"id\":\"128cac90.528bb3\",\"type\":\"inject\",\"z\":\"21106466.70e60c\",\"name\":\"Add a 2 dynamic date sequence entries, 30 sec and 1 min from now\",\"topic\":\"\",\"payload\":\"\",\"payloadType\":\"date\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":540,\"y\":240,\"wires\":[[\"a5cda63.977e558\"]]},{\"id\":\"a5cda63.977e558\",\"type\":\"function\",\"z\":\"21106466.70e60c\",\"name\":\"create payload to add 2 dates\",\"func\":\"let nowPlus30s = (new Date()).addSeconds(30);\\nlet nowPlus1min = (new Date()).addSeconds(60);\\nmsg.payload = {\\n    \\\"command\\\":\\\"add\\\",\\n    \\\"name\\\":\\\"DynamicDates\\\",\\n    \\\"topic\\\":\\\"DynamicDates\\\",\\n    \\\"expression\\\" : [nowPlus30s, nowPlus1min],\\n    \\\"type\\\":\\\"default\\\"\\n}\\nreturn msg;\",\"outputs\":1,\"noerr\":0,\"x\":510,\"y\":300,\"wires\":[[\"c5be61bb.16781\"]]},{\"id\":\"c5be61bb.16781\",\"type\":\"cronplus\",\"z\":\"21106466.70e60c\",\"name\":\"Date Sequence and CRON\",\"outputField\":\"payload\",\"timeZone\":\"\",\"persistDynamic\":false,\"commandResponseMsgOutput\":\"output1\",\"outputs\":1,\"options\":[{\"name\":\"schedule1\",\"topic\":\"fixed dates\",\"payloadType\":\"str\",\"payload\":\"fixed\",\"expressionType\":\"dates\",\"expression\":\"1609459200000, 2021-12-31 00:00, 2022-12-31 08:00 GMT+8\",\"location\":\"\",\"offset\":\"0\",\"solarType\":\"all\",\"solarEvents\":\"sunrise,sunset\"},{\"name\":\"schedule2\",\"topic\":\"cron\",\"payloadType\":\"str\",\"payload\":\"lunch time\",\"expressionType\":\"cron\",\"expression\":\"0 0 12 * * * 2021-2061\",\"location\":\"\",\"offset\":\"0\",\"solarType\":\"all\",\"solarEvents\":\"sunrise,sunset\"}],\"x\":620,\"y\":360,\"wires\":[[\"7cbe8cdf.a5b3d4\"]]}]","\u003Ch1 id=\"node-red-contrib-cron-plus\">\u003Ca class=\"header-anchor\" href=\"#node-red-contrib-cron-plus\">node-red-contrib-cron-plus\u003C\u002Fa>\u003C\u002Fh1>\n\u003Cp>\u003Cem>A flexible timer\u002Fscheduler (cron, solar events, simple dates) node for Node-RED with full dynamic control and time zone support\u003C\u002Fem>\u003C\u002Fp>\n\u003Ch2 id=\"quick-demo\">\u003Ca class=\"header-anchor\" href=\"#quick-demo\">QUICK DEMO...\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F44235289\u002F84031306-592fa900-a98d-11ea-9e93-c074473aa0c8.gif\" alt=\"cron-demo\" \u002F>\u003C\u002Fp>\n\u003Ch2 id=\"features\">\u003Ca class=\"header-anchor\" href=\"#features\">FEATURES\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>Schedule by CRON, date sequences and solar events (with offset)\n\u003Cul>\n\u003Cli>A human readable description of your expression is provided as you type.\u003C\u002Fli>\n\u003Cli>\u003Cimg src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F44235289\u002F84030877-afe8b300-a98c-11ea-8a77-be84d840bf5d.gif\" alt=\"cron-tt\" \u002F>\u003C\u002Fli>\n\u003Cli>An Easy Expression Builder to aid cron novices\u003C\u002Fli>\n\u003Cli>\u003Cimg src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F44235289\u002F90957177-296c4980-e484-11ea-9705-9a7faf90b5f0.gif\" alt=\"easy-expr-builder\" \u002F>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Multiple schedules can be entered by the node editor UI or dynamically at runtime\u003C\u002Fli>\n\u003Cli>Send a default payload or any of the following: timestamp, string, number, boolean, flow variable, global variable, JSON, JSONata, Buffer or Env variable as the output.\u003C\u002Fli>\n\u003Cli>Example CRON expressions provided in the dropdown to get you started\u003C\u002Fli>\n\u003Cli>Map popup to help you enter coordinates for solar events\n\u003Cul>\n\u003Cli>Location coordinates can be per schedule, per cron node or set by an environment variable (as of V2.0.0)\u003C\u002Fli>\n\u003Cli>NOTE: Map is 100% CDN dynamic and requires and internet connection. If there is no internet, the popup will provide information to help you get location coordinates from another source\u003C\u002Fli>\n\u003Cli>\u003Cimg src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F44235289\u002F84031948-79ac3300-a98e-11ea-966c-b77200515030.gif\" alt=\"cron-plus-map\" \u002F>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Option to separate command responses from output 1 to separate 2nd output\u003C\u002Fli>\n\u003Cli>Fan out option to separate each static schedule to its own output (dynamic and command responses are sent on last 2 output pins) (as of V1.4.0)\u003C\u002Fli>\n\u003Cli>Settable output variable (normally \u003Ccode>msg.payload\u003C\u002Fcode> but it is up to you)\u003C\u002Fli>\n\u003Cli>Inject-like button to fire the node (available when only one schedule is added)\u003C\u002Fli>\n\u003Cli>View dynamically created schedules in the node editor UI (updated in V2.0.0)\u003C\u002Fli>\n\u003Cli>Additional info about the triggered schedule is always sent in the output message in \u003Ccode>msg.cronplus\u003C\u002Fcode>\n\u003Cul>\n\u003Cli>NOTE: if the payload is to \"Default Payload\", then the content of \u003Ccode>msg.cronplus\u003C\u002Fcode> is moved to \u003Ccode>msg.payload\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Node status updates to show the next event\n\u003Cul>\n\u003Cli>NOTE: the status indicator will be shown as a \"ring\" for dynamic schedules or shown as a \"dot\" for static schedules\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Full flexibility &amp; dynamic control.\n\u003Cul>\n\u003Cli>Ability to control via simple topic commands. Examples include...\n\u003Cul>\n\u003Cli>remove, remove-all, remove-all-dynamic, remove-all-static, remove-active, remove-active-dynamic, remove-active-static, remove-inactive, remove-inactive-dynamic, remove-inactive-static\u003C\u002Fli>\n\u003Cli>export, export-all, export-all-dynamic, export-all-static, export-active, export-active-dynamic, export-active-static, export-inactive, export-inactive-dynamic, export-inactive-static\u003C\u002Fli>\n\u003Cli>list, list-all, list-all-dynamic, list-all-static, list-active, list-active-dynamic, list-active-static, list-inactive, list-inactive-dynamic, list-inactive-static\u003C\u002Fli>\n\u003Cli>status, status-all, status-all-dynamic, status-all-static, status-active, status-active-dynamic, status-active-static, status-inactive, status-inactive-dynamic, status-inactive-static\n\u003Cul>\n\u003Cli>status is an alias for list\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>stop, stop-all, stop-all-dynamic, stop-all-static\u003C\u002Fli>\n\u003Cli>start, start-all, start-all-dynamic, start-all-static\u003C\u002Fli>\n\u003Cli>pause, pause-all, pause-all-dynamic, pause-all-static\u003C\u002Fli>\n\u003Cli>next (as of v2.0.0)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Ability to add, remove, list, export, stop, start, pause schedules by a command payload input. Examples include...\n\u003Cul>\n\u003Cli>add - add one or more dynamic schedules\u003C\u002Fli>\n\u003Cli>describe - describe solar events or cron expression (without the need to add a schedule)\n\u003Cul>\n\u003Cli>useful for creating a \u003Ca href=\"https:\u002F\u002Fflows.nodered.org\u002Fflow\u002F79a66966a6cc655a827872a4af794b94\">dynamic dashboard like this\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Persist schedules and state\n\u003Cul>\n\u003Cli>In local file system (default)\u003C\u002Fli>\n\u003Cli>In memory or persistent context (as of V2.0.0)\u003C\u002Fli>\n\u003Cli>Persist state of schedules (as of V2.0.0) (i.e. if a schedule is paused, it will remain paused after a restart)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Recognises system clock changes and recalculates schedules\n\u003Cul>\n\u003Cli>change detection can now be customised by adding an entry in \u003Ccode>settings.js\u003C\u002Fcode> or an environment variable named \u003Ccode>CRONPLUS_MAX_CLOCK_DIFF\u003C\u002Fcode> (as of V2.0.0)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Demo flows demonstrating many of the capabilities. Import via node-red menu &gt; import &gt; examples.\u003C\u002Fli>\n\u003Cli>Optional time zone setting supporting UTC and Region\u002FArea (e.g. Europe\u002FLondon)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"install\">\u003Ca class=\"header-anchor\" href=\"#install\">Install\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\n\u003Cp>Easiest...\u003C\u002Fp>\n\u003Cp>Use the Manage Palette &gt; Install option from the menu inside node-red\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Harder...\u003C\u002Fp>\n\u003Cp>Alternatively in your Node-RED user directory, typically ~\u002F.node-red, run\nRun the following command in the root directory of your Node-RED install.\n(Usually this is \u003Ccode>~\u002F.node-red\u003C\u002Fcode> or \u003Ccode>%userprofile%\\.node-red\u003C\u002Fcode>).\u003C\u002Fp>\n\u003Cp>Install from NPM\u003C\u002Fp>\n\u003Cpre>\u003Ccode>npm install node-red-contrib-cron-plus\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Install from GIT\u003C\u002Fp>\n\u003Cpre>\u003Ccode>npm install Steve-Mcl\u002Fnode-red-contrib-cron-plus\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Alternatively, install from a folder\u003C\u002Fp>\n\u003Cpre>\u003Ccode>npm install c:\u002Ftempfolder\u002Fnode-red-contrib-cron-plus\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Or simply copy the folder \u003Ccode>node-red-contrib-cron-plus\u003C\u002Fcode> into a folder named \u003Ccode>nodes\u003C\u002Fcode> inside your node-red folder then \u003Ccode>cd\u003C\u002Fcode> into \u003Ccode>nodes\u002Fnode-red-contrib-cron-plus\u003C\u002Fcode> and execute \u003Ccode>npm install\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"acknowledgements\">\u003Ca class=\"header-anchor\" href=\"#acknowledgements\">Acknowledgements\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>Inspired by \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fchameleonbr\u002Fnode-red-contrib-cron\">node-red-contrib-cron\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Cron expression builder adapted for cron-plus from https:\u002F\u002Fgithub.com\u002Fjuliacscai\u002Fjquery-cron-quartz (not on NPM)\u003C\u002Fli>\n\u003Cli>Big thanks for continued support by \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjaclarke\">@jaclark\u003C\u002Fa> for the excellent \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjaclarke\u002Fcronosjs\">cronosjs\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"dependencies\">\u003Ca class=\"header-anchor\" href=\"#dependencies\">Dependencies\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjaclarke\u002Fcronosjs\">cronosjs\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbradymholt\u002FcRonstrue\">cronstrue\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsindresorhus\u002Fpretty-ms\">pretty-ms\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fandiling\u002Fsuncalc2\">suncalc2\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnaturalatlas\u002Fcoord-parser\">coord-parser\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n",1784738655015]