-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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
CardDAV does not sync/accept a birthday field without a year #4287
Comments
Duplicate of #3084 |
@MorrisJobke this is not a duplicate. as you can see in my first test case, the birthday is actually lost. data loss. Only the second one is the duplicate. |
maybe you didn't see it, because the 'Actual result' section had two items with the number 2. that was a typo and I have corrected it. |
Ah - it's completely gone? Sorry haven't seen this :/ |
cc @georgehrke |
Unfortunately yes. That's why I lost all my birthdays which had no years. Device synced to server. Server dropped the entire birthday. Next sync all my birthdays wihout a year were gone from my device. |
That's unfortunate. I guess the problem is, that VCard 3.0 has no real support for "without a year". So apple introduced their own hack (1604). I guess it's fine if that is shown in the contacts app. But I guess I can also see the sabre dav plugin deleting the malformed BDAY. So not sure how we could best solve this. |
@nickvergessen as far as I can tell there is official support for no year... |
That was added with Version 4.0:
Version 3.0 only has:
|
aaah I had the wrong RFC on my phone last night.. |
hmm, somehow I had the following for v3 in my head |
As another side note, or an idea actually: maybe if Nextcloud supports both formats, there could be an option to migrate the existing 3.0 data to 4.0 data. Wouldn't that be a great solution to solve a lot of issues? |
The problem is, not all clients interacting with our endpoints might understand V4.0 |
This I do understand, what I don't understand is why the server drops the field, instead of using v4.0. I mean, if my Vcard on my device has the birthday as Also, if I knew that all my devices understood 4.0, why should I not be able to convert all the 3.0 cards to 4.0? In that case, the server has not even a chance to try to use this useless 3.0 format. |
I do understand that you want to accommodate as many people as possible. However, there's a caveat as well. These days almost 90% of all people have the capability to use CardDav 4.0 which includes their devices and/or sync SW. To make 10% of all people happy, 90% have to suffer the flaws of a broken and lacking 3.0 spec. Make it up to the admin who runs the nc instance. Let them decide. Forcing everyone to use 3.0 for "the sake of interchangeability" is a flawed solution. Apple even removed all USB ports from their new MBs, which I found truly IDIOTIC, but hey, Apple still makes tons of money. |
To clarify: As you can see in my problem description, the VCard synced to nc is version 4.0. Yet the BDAY was dropped. But this is only part of the problem. What happens, if a 3.0 card is synced to the client and I add a BDAY without a year to that entry. Is the card converted to 4.0 on the client and sent as 4.0 or will the client just add the field and send it as 3.0 despite the fact that a BDAY wihout a year is not 3.0 compliant? |
any update on this? it has been 6 months... |
Ping. Any update? |
If 3.0 doesn't support it yet and 4.0 is not an option, why not creating a work-around with a dummy-year of e.g. 1910 or 2049 etc.. So all dates without a year are automatically assigned to that year. |
I still do not understand why 4.0 is not an option. At least let the nextcloud admin decide which standard to use. Make it a server option. Problem solved. An honest question: which clients do not understand 4.0 these days? (I really would like to know the answer to that question.)
Yes, Apple does this. They set the year to
|
The carddav protocol can support both vcard 3.0 and 4.0 in one server - it's then the clients choice which to use. In rfc6352 a client can ask with supported-address-data, if a the server supports vcard 4.0 and then send a receive vcard 4.0 data. The address-data element also has a version attribute. |
I'd like to support this issue. Please add (additional) support for vCard 4.0. The Android contacts app supports year-less dates as does DAVdroid and the Cardbook extension for Thunderbird. Use case: I will not ask my colleagues how old they are when adding their birthdate to my contact information. |
@sellth The worst thing is that a date without a birthday is lost during a sync, so there's data loss involved. Unfortunately this doesn't seem to be deemed important enough. I had opened an issue with owncloud several years ago, but nothing ever happened. I'm in the process of moving my contacts to a separate CardDAV server application. It's a shame that such a simple but basic thing isn't supported in nextcloud. |
For you @georgehrke |
@skjnldsv You can answer best if the Contacts app support VCARD 4.0 😉 According to @tessus comment in #9849 (comment) the data is synced just fine. Additionally, the related issue that no birthday events were generated for such contacts was fixed with #11832 @tessus I guess we can close this? |
Well, we do support it now (not fully, but we understand it) |
Opening a separate issue as requested in nextcloud/contacts#161
Steps to reproduce
Expected behaviour
Actual behaviour
In all cases the VCARD should contain the correct BDAY format for a birthday without a year. In the specifications for vcard 3.0 and 4.0, there are options to do so.
Server configuration
Operating system: Linux
Web server: Apache 2.4.25
Database: MySQL 5.6.25
PHP version: 5.6.30
Nextcloud version: 11.0.2
Contacts version: 1.5.3
Updated from an older Nextcloud or fresh install: updated: oc 8.2.9 -> nc 9.0.57 -> 10.0.4 -> 11.0.2
Signing status:
List of activated apps:
The content of config/config.php:
Are you using external storage, if yes which one: no
Are you using encryption: no
Are you using an external user-backend, if yes which one: no
Client configuration
Browser: Firefox 52, Chrome 57.0.2987.98
Operating system: Mac OSX 10.11.6
CardDAV-clients: DAVdroid 1.4.0.3-ose, OSX Contacts Sync (from the OS)
Logs
Web server error log
Nextcloud log (data/nextcloud.log)
Browser log
The text was updated successfully, but these errors were encountered: