Birthday ics export with wrong content I think

Hello,
I think in the export file for birthday of contacts is a small bug.

An entry looks like this:

BEGIN:VEVENT
DTSTAMP:20190617T180131Z
DTSTART;VALUE=DATE:19700914
DTEND;VALUE=DATE:19700915
UID:13a7a90e-c464-49b6-9080-01b82e79d263
RRULE:FREQ=YEARLY
SUMMARY::birthday: Andree Arndt (1948)
TRANSP:TRANSPARENT
X-NEXTCLOUD-BC-FIELD-TYPE:BDAY
X-NEXTCLOUD-BC-UNKNOWN-YEAR:0
X-NEXTCLOUD-BC-YEAR:1948
BEGIN:VALARM
TRIGGER;VALUE=DURATION:-PT0M
ACTION:DISPLAY
DESCRIPTION::birthday: Given name Name(1948)
END:VALARM
END:VEVENT

The year is correct but I think DTSTART and DTEND not. They all have 1970 as year so none of my contacts is older than 49 years:-)

Ralf

Moved to calendar :slight_smile:
@georgehrke

That’s simply because some calendar applications (mostly older Android phones) have problems with events starting before 1970.

As you can see in the Summary, the year of birth is displayed correctly there

Hi,
is it a good idea to make intentional mistakes to overcome bugs in other applications?

I saw that the year is correct in the summery but other programs/apps use DTSTART and DTEND to calculate the age.

Ralf

It is no mistake. The birthday is on the correct day. Furthermore Android has a rather big market share. So being able to display birthday events on an Android phone is important, yes.

Could you name me one application that does that? I’m not aware of any. It is just a random event that repeats once a year. For ordinary calendar applications, there is no way to tell whether this is someone’s birthday or just some event that happens to repeat once a year.

Every calendar application i know, when presenting them the ics you posted above, will simply display “:birthday: Andree Arndt (1948)”, no matter what year you are looking at.

Hi Georg (?),
the application that calculates the age is a module of the home automation software IP Symcon which you might not know. Compared to Android/IOS the user base is far below 1% I think. I posted it in the corresponding board but got no answer until now.

OK for the age I must agree with you that keeping Android in mind is logical. What I still do not like is that it is not consistent so some entries are ok and some not. What about keeping it like a regular event like Christmas and simply insert the current year. So it is always the birthday and not the day of birth.

Ralf

The icalendar standard does not provide placeholders like %year% or %nthoccurrenceofthisevent% or something like that.
If you want our CalDAV server to provide events like:

  • :birthday: Given name’s 1st birthday
  • :birthday: Given name’s 2nd birthday
  • :birthday: Given name’s 3rd birthday

you need to create a separate event for each birthday (or create recurrence exceptions).
And suddenly one simple birthday event turns into 100.

The question is also, at what age do you stop creating those birthday events?

(In the web app of the calendar, we are planning to insert custom properties and calculate the age based on that, so that we can actually display the age, not the year of birth.)