iobroker.ical 1.18.0 → 1.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
@@ -1,5 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
+ Copyright (c) 2026 iobroker-community-adapters <iobroker-community-adapters@gmx.de>
3
4
  Copyright (c) 2014-2025, bluefox <dogafox@gmail.com>
4
5
 
5
6
  Permission is hereby granted, free of charge, to any person obtaining a copy
package/README.md CHANGED
@@ -31,6 +31,14 @@ Sentry reporting, starting with js-controller 3.0, means that this adapter can u
31
31
  Placeholder for the next version (at the beginning of the line):
32
32
  ### **WORK IN PROGRESS**
33
33
  -->
34
+ ### 1.19.0 (2026-01-10)
35
+ * (jens-maus) updated dependencies.
36
+ * (Kristjan ESPERANTO) remove rrule dependency, use node-ical's built-in rrule support
37
+ * (Kristjan ESPERANTO) Update node-ical from 0.22.1 to 0.23.0
38
+
39
+ ### 1.18.1 (2025-10-24)
40
+ * (jens-maus) update node-ical to latest 0.22.1 fixing UTC tz issues.
41
+
34
42
  ### 1.18.0 (2025-10-19)
35
43
  * (jens-maus) update node-ical to latest 0.22.0 which reduces dependency load.
36
44
 
@@ -43,21 +51,12 @@ Sentry reporting, starting with js-controller 3.0, means that this adapter can u
43
51
 
44
52
  * (@GermanBluefox) Small fix in the configuration dialog
45
53
 
46
- ### 1.16.1 (2024-11-01)
47
- * (jens-maus) fix issue with handling rrule timezones incorrect with the latest node-ical (#708).
48
- * (jens-maus) update node-ical to latest 0.20.1
49
- * (jens-maus) save cached files to os tmpdir instead.
50
-
51
- ### 1.16.0 (2024-10-29)
52
- * (cvoelkel76) added checkbox to allow exactly matching of a calendar event.
53
- * (jens-maus) update node-ical to latest 0.20.0
54
- * (klein0r) Breaking change: Removed trigger state (subscribe is deprecated in js-controller 6.x)
55
- * (simatec) Responsive design added
56
-
57
54
  ## License
58
55
 
59
56
  The MIT License (MIT)
60
57
 
58
+
59
+ Copyright (c) 2026 iobroker-community-adapters <iobroker-community-adapters@gmx.de>
61
60
  Copyright (c) 2014-2025, bluefox <dogafox@gmail.com>
62
61
 
63
62
  Permission is hereby granted, free of charge, to any person obtaining a copy
package/io-package.json CHANGED
@@ -1,8 +1,34 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "ical",
4
- "version": "1.18.0",
4
+ "version": "1.19.0",
5
5
  "news": {
6
+ "1.19.0": {
7
+ "en": "updated dependencies.\nremove rrule dependency, use node-ical's built-in rrule support\nUpdate node-ical from 0.22.1 to 0.23.0",
8
+ "de": "aktualisierte abhängigkeiten.\nrrule abhängigkeit entfernen, node-ical's integrierte rrule support verwenden\nAktualisieren Sie node-ical von 0.22.1 bis 0.23.0",
9
+ "ru": "обновленные зависимости.\nудалите зависимость от rrule, используйте встроенную поддержку rrule\nОбновление node-ical от 0.22.1 до 0.23.0",
10
+ "pt": "dependências atualizadas.\nremover a dependência rrule, usar o suporte rrule incorporado do nó-ical\nAtualizar o nó-ical de 0.22.1 a 0.23.0",
11
+ "nl": "bijgewerkte afhankelijkheden.\nregelafhankelijkheid verwijderen, node-ical's ingebouwde regelondersteuning gebruiken\nBijwerken node-ical van 0,22.1 tot 0,23.0",
12
+ "fr": "des dépendances actualisées.\nsupprimer la dépendance rrule, utiliser le support rrule intégré de node-ical\nMettre à jour le nœud de 0,22.1 à 0,23.0",
13
+ "it": "dipendenze aggiornate.\nrimuovere la dipendenza rrule, utilizzare il supporto rrule integrato di node-ical\nNodo di aggiornamento da 0.22.1 a 0.23.0",
14
+ "es": "dependencias actualizadas.\neliminar la dependencia rrule, utilizar el soporte rrule integrado de node-ical\nActualizar nodo-ical de 0.22.1 a 0.23.0",
15
+ "pl": "zaktualizowane zależności.\nusunąć zależności rrule, używać node- built- w obsłudze rrule\nAktualizuj nodeical od 0.22.1 do 0.23.0",
16
+ "uk": "оновлені залежності.\nвидалення залежності rrule, використання вбудованої системи вузла\nUpdate node-ical від 0.22.1 до 0.23.0",
17
+ "zh-cn": "更新的依赖关系.\n删除 rrule 依赖性, 使用 node- ical 的内置 rrule 支持\n将节点从0.22.1更新为0.23.0"
18
+ },
19
+ "1.18.1": {
20
+ "en": "update node-ical to latest 0.22.1 fixing UTC tz issues.",
21
+ "de": "update node-ical auf neueste 0.22.1 beheben UTC tz Probleme.",
22
+ "ru": "обновить узел-каль до последнего 0.22.1, исправляя проблемы UTC tz.",
23
+ "pt": "atualizar nó-ical para mais recente 0.22.1 fixando problemas UTC tz.",
24
+ "nl": "update node-ical naar de laatste 0.22.1 vaststelling UTC tz problemen.",
25
+ "fr": "mettre à jour noeud-ical à la dernière 0.22.1 Correction des problèmes UTC tz.",
26
+ "it": "aggiornamento nodo-ical al più recente 0.22.1 risolvere problemi UTC tz.",
27
+ "es": "actualizar node-ical a los últimos 0.22.1 solucionar problemas de UTC tz.",
28
+ "pl": "aktualizuj node-ical do najnowszej wersji 0.22.1 naprawiania problemów UTC tz.",
29
+ "uk": "update node-ical to last 0.22.1 Fixing UTC tz проблеми.",
30
+ "zh-cn": "将节点更新到最新的0.22.1 修复 UTC 的 tz 问题."
31
+ },
6
32
  "1.18.0": {
7
33
  "en": "update node-ical to latest 0.22.0 which reduces dependency load.",
8
34
  "de": "update node-ical auf neueste 0.22.0, was die abhängigkeitslast reduziert.",
@@ -67,32 +93,6 @@
67
93
  "pl": "dodaj pole wyboru, aby umożliwić dokładne dopasowanie zdarzenia kalendarza.\naktualizacja node- ical do najnowszej wersji 0.20.0\nŁamanie zmian: Usunięty stan wyzwalania (prenumerata w sterowniku js- 6.x)\nDodano projekt odpowiadający",
68
94
  "uk": "додайте прапорець, щоб точно відповідати події.\nоновлення вершини-ical до останньої 0.20.0\nЗміна розривів: Вилучений пусковий стан (приписується в js-controller 6.x)\nДодано адаптивний дизайн",
69
95
  "zh-cn": "添加复选框,以便精确匹配一个计数器事件.\n将节点更新为最近0.2.0\n中断更改 : 删除触发状态( 订阅在 js- controller 6. x 中已贬值)\n增加了反应设计"
70
- },
71
- "1.15.0": {
72
- "en": "Adapter requires node.js >= 18 and js-controller >= 5 now\nDependencies have been updated",
73
- "de": "Adapter benötigt node.js >= 18 und js-controller >= 5 jetzt\nAbhängigkeiten wurden aktualisiert",
74
- "ru": "Адаптер требует node.js >= 18 и js-контроллер >= 5 сейчас\nЗависимость обновлена",
75
- "pt": "Adapter requer node.js >= 18 e js-controller >= 5 agora\nAs dependências foram atualizadas",
76
- "nl": "Voor adaptor zijn node.js < 18 en js-controller > Nu 5\nAfhankelijkheden zijn bijgewerkt",
77
- "fr": "L'adaptateur nécessite node.js >= 18 et js-controller >= 5 maintenant\nLes dépendances ont été actualisées",
78
- "it": "Adattatore richiede node.js >= 18 e js-controller >= 5 ora\nLe dipendenze sono state aggiornate",
79
- "es": "Adaptador requiere node.js ó= 18 y js-controller 5 ahora\nSe han actualizado las dependencias",
80
- "pl": "Adapter wymaga node.js > = 18 i kontroler js- > = 5 teraz\nZaktualizowano zależności",
81
- "uk": "Адаптер вимагає node.js >= 18 і js-controller >= 5 тепер\nЗалежність було оновлено",
82
- "zh-cn": "适配器需要节点.js QQ18和js控制器 QQ 现在5号\n依赖关系已更新"
83
- },
84
- "1.14.3": {
85
- "en": "update node-ical to latest 0.18.0",
86
- "de": "update node-ical auf neueste 0.18.0",
87
- "ru": "обновление узла к последнему 0.18.0",
88
- "pt": "atualização node-ical para mais recente 0.18.0",
89
- "nl": "node-ical updaten naar de laatste 0.18.0",
90
- "fr": "mettre à jour noeud-ical à la dernière 0.18.0",
91
- "it": "aggiornamento nodo-ical al più recente 0.18.0",
92
- "es": "actualización node-ical al último 0.18.0",
93
- "pl": "aktualizacja nodeical do najnowszej wersji 0.18.0",
94
- "uk": "оновлення вершини-ical до останньої 0.18.0",
95
- "zh-cn": "将节点更新为最新0.1.8"
96
96
  }
97
97
  },
98
98
  "titleLang": {
@@ -126,7 +126,8 @@
126
126
  "Apollon77 <ingo@fischer-ka.de>",
127
127
  "twonky4 <twonky4@gmx.de>",
128
128
  "Jens Maus <mail@jens-maus.de>",
129
- "Matthias Kleine <info@haus-automatisierung.com>"
129
+ "Matthias Kleine <info@haus-automatisierung.com>",
130
+ "iobroker-community-adapters <iobroker-community-adapters@gmx.de>"
130
131
  ],
131
132
  "docs": {
132
133
  "en": "docs/en/README.md",
package/main.js CHANGED
@@ -10,7 +10,6 @@ const os = require('node:os');
10
10
  const utils = require('@iobroker/adapter-core');
11
11
  const adapterName = require('./package.json').name.split('.').pop();
12
12
 
13
- const RRule = require('rrule').RRule;
14
13
  const ce = require('cloneextend');
15
14
  const axios = require('axios');
16
15
 
@@ -477,23 +476,7 @@ async function processData(data, realnow, startpreview, endpreview, now2, calNam
477
476
  );
478
477
  }
479
478
 
480
- const options = RRule.parseString(ev.rrule.toString());
481
-
482
- // the following workaround an issue in rule.between() later on where
483
- // the time comparison between dtstart and until does not seem to work
484
- // if both are not in the same DST zone (e.g. dtstart=2021-09-21T15:00:00.000Z
485
- // until=2021-11-09T15:59:59.000Z) so that an event is still considered as TODAY
486
- // even thought it ends one second before the next scheduled one.
487
- if (options.until !== undefined && options.dtstart !== undefined) {
488
- options.until = addOffset(
489
- options.until,
490
- options.dtstart.getTimezoneOffset() - options.until.getTimezoneOffset(),
491
- );
492
- }
493
- adapter.log.debug(`options: ${JSON.stringify(options)}`);
494
-
495
- const rule = new RRule(options);
496
-
479
+ // node-ical already provides a ready-to-use rrule object
497
480
  let now3 = new Date(now2.getTime() - eventLength);
498
481
  if (now2 < now3) {
499
482
  now3 = now2;
@@ -502,20 +485,18 @@ async function processData(data, realnow, startpreview, endpreview, now2, calNam
502
485
  now3 = startpreview;
503
486
  }
504
487
  adapter.log.debug(
505
- `RRule event:${ev.summary}; start:${ev.start.toString()}; endpreview:${endpreview.toString()}; startpreview:${startpreview.toString()}; now2:${now2.toString()}; now3:${now3.toString()}; rule:${JSON.stringify(rule)}`,
488
+ `RRule event:${ev.summary}; start:${ev.start.toString()}; endpreview:${endpreview.toString()}; startpreview:${startpreview.toString()}; now2:${now2.toString()}; now3:${now3.toString()}`,
506
489
  );
507
490
 
508
491
  let dates = [];
509
492
  try {
510
- dates = rule.between(now3, endpreview, true);
493
+ dates = ev.rrule.between(now3, endpreview, true);
511
494
  } catch (e) {
512
495
  adapter.log
513
496
  .error(`Issue detected in RRule, event ignored; Please forward debug information to iobroker.ical developer: ${e.stack}
514
- RRule object: ${JSON.stringify(rule)}
497
+ RRule: ${ev.rrule.toString()}
515
498
  now3: ${now3}
516
- endpreview: ${endpreview}
517
- string: ${ev.rrule.toString()}
518
- options: ${JSON.stringify(options)}`);
499
+ endpreview: ${endpreview}`);
519
500
  }
520
501
 
521
502
  adapter.log.debug(`dates: ${JSON.stringify(dates)}`);
package/package.json CHANGED
@@ -1,28 +1,14 @@
1
1
  {
2
2
  "name": "iobroker.ical",
3
- "version": "1.18.0",
3
+ "version": "1.19.0",
4
4
  "description": "Allows read information from google calender and from iCal.",
5
- "author": {
6
- "name": "bluefox",
7
- "email": "dogafox@gmail.com"
8
- },
5
+ "author": "bluefox <dogafox@gmail.com>",
9
6
  "contributors": [
10
- {
11
- "name": "Apollon77",
12
- "email": "ingo@fischer-ka.de"
13
- },
14
- {
15
- "name": "twonky4",
16
- "email": "twonky4@gmx.de"
17
- },
18
- {
19
- "name": "jens-maus",
20
- "email": "mail@jens-maus.de"
21
- },
22
- {
23
- "name": "Matthias Kleine",
24
- "email": "info@haus-automatisierung.com"
25
- }
7
+ "Apollon77 <ingo@fischer-ka.de>",
8
+ "twonky4 <twonky4@gmx.de>",
9
+ "jens-maus <mail@jens-maus.de>",
10
+ "Matthias Kleine <info@haus-automatisierung.com>",
11
+ "iobroker-community-adapters <iobroker-community-adapters@gmx.de>"
26
12
  ],
27
13
  "homepage": "https://github.com/iobroker-community-adapters/ioBroker.ical",
28
14
  "keywords": [
@@ -39,32 +25,31 @@
39
25
  },
40
26
  "dependencies": {
41
27
  "@iobroker/adapter-core": "^3.3.2",
42
- "axios": "^1.12.2",
28
+ "axios": "^1.13.2",
43
29
  "cloneextend": "^0.0.3",
44
30
  "json-schema": "^0.4.0",
45
- "node-ical": "^0.22.0",
46
- "rrule": "2.8.1"
31
+ "node-ical": "^0.23.0"
47
32
  },
48
33
  "devDependencies": {
49
- "@alcalzone/release-script": "^3.8.0",
50
- "@alcalzone/release-script-plugin-iobroker": "^3.7.2",
51
- "@alcalzone/release-script-plugin-license": "^3.7.0",
52
- "@alcalzone/release-script-plugin-manual-review": "^3.7.0",
34
+ "@alcalzone/release-script": "^5.0.0",
35
+ "@alcalzone/release-script-plugin-iobroker": "^4.0.0",
36
+ "@alcalzone/release-script-plugin-license": "^4.0.0",
37
+ "@alcalzone/release-script-plugin-manual-review": "^4.0.0",
53
38
  "@iobroker/adapter-dev": "^1.5.0",
54
39
  "@iobroker/eslint-config": "^2.2.0",
55
- "@iobroker/testing": "^5.1.1",
40
+ "@iobroker/testing": "^5.2.2",
56
41
  "@types/chai": "^4.3.20",
57
42
  "@types/chai-as-promised": "^7.1.8",
58
43
  "@types/mocha": "^10.0.10",
59
- "@types/node": "^24.6.1",
44
+ "@types/node": "^25.0.6",
60
45
  "@types/proxyquire": "^1.3.31",
61
- "@types/sinon": "^17.0.4",
46
+ "@types/sinon": "^21.0.0",
62
47
  "@types/sinon-chai": "^3.2.12",
63
48
  "chai": "^4.5.0",
64
49
  "chai-as-promised": "^7.1.2",
65
50
  "chai-string": "^1.6.0",
66
51
  "luxon": "^3.7.2",
67
- "mocha": "^11.7.3",
52
+ "mocha": "^11.7.5",
68
53
  "proxyquire": "^2.1.3",
69
54
  "sinon": "^21.0.0",
70
55
  "sinon-chai": "^3.7.0",