# \[APP\]\[Pro\] IcalCalendar

**URL:** <https://community.homey.app/t/app-pro-icalcalendar/80708>\
**Category:** Apps\
**Tags:** app, tools, homey-pro\
**Created:** [May 18, 2023, 2:29pm UTC](https://community.homey.app/t/app-pro-icalcalendar/80708 "2023-05-18T14:29:43Z")\
**Posts on this page:** 20\
**Page:** 9

<div class="post-metadata">

**Author:** ![Patrick\_Spadrille](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/patrick_spadrille/32/120160_2.png) [@Patrick\_Spadrille](https://community.homey.app/u/Patrick_Spadrille)\
**Post date:** [December 2, 2024, 8:58pm UTC](https://community.homey.app/t/app-pro-icalcalendar/80708/165 "2024-12-02T20:58:55Z")

</div>

Hello. I do my first steps with this app which is one of the main reason i switch from Apple Home to Homey.  
I want to start an action when an event in a specific calendar starts in 4 hours. Right now, to do that i use a “when” card “The event begin in 4 hours” and an “and” card “Any event begin in 4 hours in the calendar X”. That works but i’m not sure i use the easiest way to do such a simple task. i’m afraid that having to specify the duration in 2 different cards will leds me to errors if i change the duration in one of the card and not modify it in the other card. So, is there a simplest way ? (and thank you for the great work)

---

<div class="post-metadata">

**Author:** ![runely](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/runely/32/28153_2.png) [@runely](https://community.homey.app/u/runely)\
**Post date:** [December 2, 2024, 10:02pm UTC](https://community.homey.app/t/app-pro-icalcalendar/80708/166 "2024-12-02T22:02:03Z")

</div>

Use the trigger `Event starts in …` and a logic card as an And card to check the `Calendar name` token from the trigger card

---

<div class="post-metadata">

**Author:** ![Patrick\_Spadrille](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/patrick_spadrille/32/120160_2.png) [@Patrick\_Spadrille](https://community.homey.app/u/Patrick_Spadrille)\
**Post date:** [December 3, 2024, 6:20am UTC](https://community.homey.app/t/app-pro-icalcalendar/80708/167 "2024-12-03T06:20:02Z")

</div>

Yes, that’s a lot better. Thank you for your help.

---

<div class="post-metadata">

**Author:** ![Patrick\_Spadrille](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/patrick_spadrille/32/120160_2.png) [@Patrick\_Spadrille](https://community.homey.app/u/Patrick_Spadrille)\
**Post date:** [December 3, 2024, 6:34am UTC](https://community.homey.app/t/app-pro-icalcalendar/80708/168 "2024-12-03T06:34:13Z")

</div>

Also another thing, is there a possibility to have an action triggered at midnight if an event has took place in the last 24 hours? I have found a workaround by having a flow running every hour and modifying a yes/no variable when it found an event. Then i use this variable as a condition to trigger the midnight action. It works but maybe this workaround doesn’t have to be and i try to not overcomplicated my flows.

---

<div class="post-metadata">

**Author:** ![runely](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/runely/32/28153_2.png) [@runely](https://community.homey.app/u/runely)\
**Post date:** [December 3, 2024, 8:20am UTC](https://community.homey.app/t/app-pro-icalcalendar/80708/169 "2024-12-03T08:20:49Z")

</div>

So this is where you need to be creative.

For instance, when any event is triggered, set a variable to the current date time and at midnight check if that variable is within the last 24 hours

---

<div class="post-metadata">

**Author:** ![Patrick\_Spadrille](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/patrick_spadrille/32/120160_2.png) [@Patrick\_Spadrille](https://community.homey.app/u/Patrick_Spadrille)\
**Post date:** [December 3, 2024, 11:36am UTC](https://community.homey.app/t/app-pro-icalcalendar/80708/170 "2024-12-03T11:36:05Z")

</div>

So, that’s exactly what i did. I was right this time. 😃

---

<div class="post-metadata">

**Author:** ![dooniem](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/dooniem/32/58384_2.png) [@dooniem](https://community.homey.app/u/dooniem)\
**Post date:** [December 10, 2024, 12:27pm UTC](https://community.homey.app/t/app-pro-icalcalendar/80708/171 "2024-12-10T12:27:30Z")

</div>

@Whop_Whoppie If you are willing to pay for IFTTT, then you can run IFTTT applets that let’s you make changes to an actual calendar. I have a flow that creates an event on a Google calendar. (I made that before local events was introduced)  
 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/4/b/4b62f7737fceb2235002e556de7bda5c8102bd8d.png)

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/5/4/54ba333ca28a5930bdfdc4c6f8b79d9ef5f532fb.png)

Here Homey is providing the details for the event to be created.  
But you want a total replica if so and so is true. Then I guess involving **Homey is unnecessary.**  
You should be able to make IFTTT sniff for new events in Calendar A, and if so and so is true, copy that event to Calendar B.

---

<div class="post-metadata">

**Author:** ![Whop\_Whoppie](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/whop_whoppie/32/79635_2.png) [@Whop\_Whoppie](https://community.homey.app/u/Whop_Whoppie)\
**Post date:** [December 11, 2024, 8:22am UTC](https://community.homey.app/t/app-pro-icalcalendar/80708/172 "2024-12-11T08:22:00Z")

</div>

thanks

---

<div class="post-metadata">

**Author:** ![Patrick\_Spadrille](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/patrick_spadrille/32/120160_2.png) [@Patrick\_Spadrille](https://community.homey.app/u/Patrick_Spadrille)\
**Post date:** [December 12, 2024, 8:05pm UTC](https://community.homey.app/t/app-pro-icalcalendar/80708/173 "2024-12-12T20:05:44Z")

</div>

Hello. I’m trying to do a flow that deactivate a lamp if it’s activate on a day when a particular calendar has no event on this day.  
I have make this simple flow :

 ![Capture d’écran 2024-12-12 à 21.00.42](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/2/0/20f9f859f9b2df95d4db7fc1a2306066f2bbb6de.jpeg)  
The logic card check if the number of calendar events in this specific calendar today is below 1. Since there is one event today, the number of event today tag should be 1 but it gives me 0 and therefore the lamp deactivate when it shouldn’t. What am i missing?

---

<div class="post-metadata">

**Author:** ![runely](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/runely/32/28153_2.png) [@runely](https://community.homey.app/u/runely)\
**Post date:** [December 12, 2024, 11:04pm UTC](https://community.homey.app/t/app-pro-icalcalendar/80708/174 "2024-12-12T23:04:40Z")

</div>

The today tag shows number of events today which hasn’t started yet or are ongoing.

---

<div class="post-metadata">

**Author:** ![Patrick\_Spadrille](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/patrick_spadrille/32/120160_2.png) [@Patrick\_Spadrille](https://community.homey.app/u/Patrick_Spadrille)\
**Post date:** [December 13, 2024, 3:25pm UTC](https://community.homey.app/t/app-pro-icalcalendar/80708/175 "2024-12-13T15:25:42Z")

</div>

That should be my problem. Thank you for the fast answer. Anyway, i think it could be a great addition to this great app to be able to have tags that count the number of event which has already hapend today or yesterday. Thank you for the great work 😃

---

<div class="post-metadata">

**Author:** ![runely](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/runely/32/28153_2.png) [@runely](https://community.homey.app/u/runely)\
**Post date:** [December 13, 2024, 3:45pm UTC](https://community.homey.app/t/app-pro-icalcalendar/80708/176 "2024-12-13T15:45:07Z")

</div>

`IcalCalendar` _only_ synchronize in events inside the time frame chosen in settings AND not started or ongoing events.

Finished events is not synchronized in ad they have no use anymore, and to minimize memory and disk usage.

So that will not be possible

---

<div class="post-metadata">

**Author:** ![Patrick\_Spadrille](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/patrick_spadrille/32/120160_2.png) [@Patrick\_Spadrille](https://community.homey.app/u/Patrick_Spadrille)\
**Post date:** [December 13, 2024, 4:28pm UTC](https://community.homey.app/t/app-pro-icalcalendar/80708/177 "2024-12-13T16:28:43Z")

</div>

Would that be such a hit on memory and disk usage? Because i see a lot of usage for such a feature. For example, only vaccum if and event show that there has been activity in the room today. I can use workaround but it’s a lot of steps to do that. A tag would be so much easier. Anyway, just something to meditate on. 😃

---

<div class="post-metadata">

**Author:** ![runely](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/runely/32/28153_2.png) [@runely](https://community.homey.app/u/runely)\
**Post date:** [December 13, 2024, 4:42pm UTC](https://community.homey.app/t/app-pro-icalcalendar/80708/178 "2024-12-13T16:42:43Z")

</div>

That would be a breaking change, so the card logic will not be changed.

---

<div class="post-metadata">

**Author:** ![runely](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/runely/32/28153_2.png) [@runely](https://community.homey.app/u/runely)\
**Post date:** [December 13, 2024, 4:44pm UTC](https://community.homey.app/t/app-pro-icalcalendar/80708/179 "2024-12-13T16:44:48Z")

</div>

And the app would need to synchronize in “dead” events for the whole time range set in settings page.

So I’m sorry. This will not be implemented

---

<div class="post-metadata">

**Author:** ![Goran\_Wiberg](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/goran_wiberg/32/19926_2.png) [@Goran\_Wiberg](https://community.homey.app/u/Goran_Wiberg)\
**Post date:** [December 23, 2024, 4:00pm UTC](https://community.homey.app/t/app-pro-icalcalendar/80708/180 "2024-12-23T16:00:35Z")

</div>

Hello Runely

I recently added IcalCalendar to my Homey 2019 and I think it’s a fantastic app and it helps me and the family a lot. But I have a problem that you might be able to help med with.

The problem is that I get an hour offset between my calendar and the app. I’ve read that the app reads the BEGIN:VTIMEZONE sections and not X-WR-TIMEZONE but it seems like my e-post server (Kerio Connect on own server) uses booth, or? Before I start changing the “timezones.xml” file in my mail server, I wonder if you know a way to solve it a bit easily?

I have tried with a Google Calender and it worked great, so it seems like it is a “local” problem with my Kerio Connect.

This is from a celender event:

```auto
"BEGIN:VCALENDAR
PRODID:-//Kerio Technologies//Kerio Connect//EN
METHOD: PUBLISH
VERSION:2.0
X-WR-CALNAME:Familjen Wiberg's calendar - ~familjen@wiberg.cc/Calendar
BEGIN:VTIMEZONE
TZID:(GMT) Greenwich Mean Time
BEGIN:STANDARD
DTSTART:19700101T000001
TZOFFSETTO:+0000
TZOFFSETFROM:+0000
END:STANDARD
END:VTIMEZONE"

```

And this is from the timezone.xml-file in the Kerio Connect:

```auto
    <zone>
      <location>Europe/Stockholm</location>
      <stdAbbr>+0100</stdAbbr>
      <daylightAbbr>+0200</daylightAbbr>
      <stdStart>19961027T030000</stdStart>
      <daylightStart>19810329T020000</daylightStart>
      <stdRRule>FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU</stdRRule>
      <daylightRRule>FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU</daylightRRule>
      <cdoTimeZoneId>3</cdoTimeZoneId>
      <cdoTimeZoneId>4</cdoTimeZoneId>
      <cdoTimeZoneId>6</cdoTimeZoneId>
    </zone>

```

Any suggestions?

---

<div class="post-metadata">

**Author:** ![runely](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/runely/32/28153_2.png) [@runely](https://community.homey.app/u/runely)\
**Post date:** [December 23, 2024, 9:15pm UTC](https://community.homey.app/t/app-pro-icalcalendar/80708/181 "2024-12-23T21:15:55Z")

</div>

**IcalCalendar** uses the [node-ical](https://github.com/jens-maus/node-ical) library to parse the calendar ics file.

This library uses the _TZID_ parameter in the **DTSTART** property of each VEVENT to determine the timezone for the event. If the TZID parameter isn’t present and/or the date/datetime value has a leading Z, the date/datetime value is treated as UTC.

---

<div class="post-metadata">

**Author:** ![Dries\_Verbruggen](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/dries_verbruggen/32/74263_2.png) [@Dries\_Verbruggen](https://community.homey.app/u/Dries_Verbruggen)\
**Post date:** [December 25, 2024, 3:36pm UTC](https://community.homey.app/t/app-pro-icalcalendar/80708/182 "2024-12-25T15:36:27Z")

</div>

I also agree, would be a very useful addition!

---

<div class="post-metadata">

**Author:** ![Goran\_Wiberg](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/goran_wiberg/32/19926_2.png) [@Goran\_Wiberg](https://community.homey.app/u/Goran_Wiberg)\
**Post date:** [December 26, 2024, 4:42pm UTC](https://community.homey.app/t/app-pro-icalcalendar/80708/183 "2024-12-26T16:42:24Z")

</div>

Thanks for fast reply

But i dont´t get it, is it here `TZID:(GMT) Greenwich Mean Time` it shcould have “my” time instead?

Or is it `DTSTART:19700101T000001` here sameting is wrong? Sorry for my poor knowledge…

---

<div class="post-metadata">

**Author:** ![runely](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/runely/32/28153_2.png) [@runely](https://community.homey.app/u/runely)\
**Post date:** [December 27, 2024, 4:28pm UTC](https://community.homey.app/t/app-pro-icalcalendar/80708/184 "2024-12-27T16:28:58Z")

</div>

Fint your events in the .ics file, they are starting with `BEGIN:VEVENT` and ending with `END:VEVENT` and inside each event there’s a **DTSTART** property. It can look something like this:

```plaintext
DTSTART;TZID=W. Europe Standard Time:20231120T080000

```

If TZID is not present, its assumed the DTSTART is in UTC!

If TZID is present but set to UTC, GMT or a timezone identifier with 0 offset, its assumed the DTSTART is in UTC!

If TZID is present but set to something only your server can understand, like but not limited to “Customized Time Zone”, its assumed the DTSTART is in UTC!

[Previous page](https://community.homey.app/t/app-pro-icalcalendar/80708.md?page=8)

[Next page](https://community.homey.app/t/app-pro-icalcalendar/80708.md?page=10)
