Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

birthday calendar: show age instead of birth year #12462

Closed
johkoenig opened this issue Nov 14, 2018 · 15 comments
Closed

birthday calendar: show age instead of birth year #12462

johkoenig opened this issue Nov 14, 2018 · 15 comments
Labels
enhancement feature: dav good first issue Small tasks with clear documentation about how and in which place you need to fix things in.

Comments

@johkoenig
Copy link
Member

johkoenig commented Nov 14, 2018

carrying this over from calendar: nextcloud/calendar#940.

I assume this needs some larger reprogramming, since right now just one series of identical events is created and this request will add a necessity to create one event each year. However, I think this will enhance UX. When you see a colleague or friend who's birthday is today, normally people say "congrats on your 42nd birthday" and not "congrats on being born in 1976".

Steps to reproduce

  1. Add people with birthdays to your contacts app
  2. Have a look at the birthday calendar

Expected behaviour

If somebody is born on August 1st, 1976, then the calendar of August 2018 should show "John Doe (42)"
The birthday date could be added to the notes.

Actual behaviour

The calendar shows "John Doe (*1976)".

Server configuration

Server version: 14.0.3
Calendar version: 1.6.3

@nextcloud-bot
Copy link
Member

GitMate.io thinks possibly related issues are #1854 (Some contact birthdays shown multiple times), #2965 (Change Color of Birthday Calendar), #3084 (contact birthdays with no year given are shown with (*1604) in calendar), #3003 (Disable birthday contacts calendar generation for user), and #5504 ('Contacts Birthdays' showing up as task list).

@MorrisJobke MorrisJobke added enhancement good first issue Small tasks with clear documentation about how and in which place you need to fix things in. labels Nov 15, 2018
@tcitworld
Copy link
Member

Since Birthday Service is handled by a cron job, we could only generate birthday events for the previous, current and next year (with the appropriate title each time), instead of using the recurrence rule.

What do you think, @georgehrke?

@johkoenig
Copy link
Member Author

@tcitworld I'd use at least 10 years into the future and all the way back to birth. I don't think it will put much load on the server. After the first run, it'll be only one appointment each year. I even think that it will probably add more load to check whether appropriate events have been generated than just generating a larger amount in the first place.

For people with death date given, the events should be generated for all the years between birth and death.

@tcitworld
Copy link
Member

I'd use at least 10 years into the future and all the way back to birth.

Why would you need that? The birthday events of the year N+1 will be exactly the same than on year N. The feature with the birthday calendar is to be reminded of the upcoming birthday events, not exploring past birthday events or far future ones.

I don't think it will put much load on the server.

I administrate an instance where my user have a total of around one million contacts. Let's say only half of them have their birth date registered and they are on average 30 years old, generating all events from their birth and 10 years in the future would make 20 million events to handle, whereas I had only 500 000 before.

I even think that it will probably add more load to check whether appropriate events have been generated than just generating a larger amount in the first place.

My plan was not to check whether they are generated or not (like it's done right now - but we only always have one event), it's just deleting the (old) birthday event(s) associated for each contact and recreating it once in a while.

For people with death date given, the events should be generated for all the years between birth and death.

👍

@johkoenig
Copy link
Member Author

johkoenig commented Nov 16, 2018

Why would you need that? The birthday events of the year N+1 will be exactly the same than on year N. The feature with the birthday calendar is to be reminded of the upcoming birthday events, not exploring past birthday events or far future ones.
Different users use products differently. Personally, I'd see it as a bug if I skip through my calendar today and I see birthdays in 2019 but not in 2020, 2021 and so on. I agree that there as to be a cut off at a certain point, but 1 year seems far to rigid. You gave me a thumbs up for setting birthday events from birth to death, so why not doing the following:

  • if birth and death are given: brithday evens between these dates
  • if birth is given, but no death: from birth to 100 years
  • if birthday without year is given, then we can go with one recurring event without start and end date (unless death date is given)

I administrate an instance where my user have a total of around one million contacts. Let's say only half of them have their birth date registered and they are on average 30 years old, generating all events from their birth and 10 years in the future would make 20 million events to handle, whereas I had only 500 000 before.

This may be a problem, but it is a one-time problem. This could be handled e.g. during upgrade. Once everything is created, it's not much more effort compared to now.

@tcitworld
Copy link
Member

I still don't see why someone would be interested to view birthday events from last 10 years or next 10 years, sorry. This really blocks me. :D

@johkoenig
Copy link
Member Author

johkoenig commented Nov 25, 2018

@tcitworld: Please take a step back and have a look at the original issue. All I propose to change is showing the age of a person instead of a year. I didn't propose to change anything on the amount of appointments created.
It was just for technical reasons (single events vs. recurring event), that we're even discussing how many events should be created.

And, concerning the timeframe of events, thats just something that is probably best described as "calendar event completeness". I totally agree with you that most people look onto calendar dates 10 or 20 years from now. However, if someone does so, I think he should be presented will all events.
I belief it would be a major step backward if a user is forced to think "ok its november 2018 now and I'm looking at november 2020. Why is there no birthdays? A right, they will get created once 2019 starts".

Edit: Please have a look at this image, which very well described what I propose. It's taken from a hosted Open-Xchange.
ox-example

@johkoenig
Copy link
Member Author

As a wrap-up: If changing the birthday calendar from year to age will lead to a limitation of events to -+2 years, please leave everything as it is and close this issue.

@georgehrke
Copy link
Member

I would personally just stick to John Doe (*1976) in the server and calculate the age in the calendar app.

@kosli
Copy link

kosli commented Apr 15, 2020

I would personally just stick to John Doe (*1976) in the server and calculate the age in the calendar app.

Just an additional comment for @georgehrke : I am using mainly external apps for my calendars (e.g. phone, tablet, thunderbird calendar etc.) and by leaving it John Doe (*1976) all of my calendars (and especially reminders) show only the birth year, but not the age. So adapting it in the calendar app would only "fixing" it for a minor part.
I had used a similar approach for my google contacts as @tcitworld proposed and it was very convenient to see the age on every device where the calendar was synced too and I never had the need to look at birthday 10 years in the future ;-)
A feature could be to let the user select which way he wants to have the birthday calendar generated:

  • as is with recurring events and no age added
  • have single events and have the user to select how many years back/future the events should be generated
  • an option to decide if the events (for both cases) should stop after the death of the person or not (as you may still want to be reminded of the birthdays of your family members that passed away)

@Luensche
Copy link

I have been just before creating this issue by myself as I found it. Since I have different sync clients and for each client I have to create an own calendar to show the ages, I disagree to @georgehrke. Changes in the calendar app are not helpful for me. In this case I can't use this calendar on my sync clients. Please rethink the closing of this issue. Even three events per person would be enough for me.

@reox
Copy link

reox commented Jul 16, 2020

Why was this one closed? I would find it a good addition to be able to either show the year of birth or the age AND be able to sync that to all my clients.
I fully understand the issue of having recurring events vs single events...

Regardless, there is an Android App (https://f-droid.org/en/packages/org.birthdayadapter/) which can do this. You can configure it to various schemas how to show the birthday. For now, I'm going back to this app than using nextcloud's birthday calendar.

@georgehrke
Copy link
Member

Why was this one closed? I would find it a good addition to be able to either show the year of birth or the age AND be able to sync that to all my clients.

We are already showing the year of birth: John Doe (*1976)

@call-me-matt
Copy link
Member

Regardless, there is an Android App (https://f-droid.org/en/packages/org.birthdayadapter/) which can do this.

Unfortunately that app is not maintained anymore, see here and here. On his website, the maintainer writes that he wants to retire the app.

Anyways, I think it would make a great feature in nextcloud.

@kelke
Copy link

kelke commented Aug 23, 2023

Are there any updates on this issue? None of my calendars are able to convert the age automatically, so in my mind this is still a valuable enhancement. Unfortunately i lack the knowledge about dav etc. to create a PR myself but would still love this feature.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement feature: dav good first issue Small tasks with clear documentation about how and in which place you need to fix things in.
Projects
None yet
Development

No branches or pull requests

10 participants