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: contacts with birthday on Feb. 29th have no appointment in non-leap years #747

Closed
bold-gman opened this issue Mar 1, 2018 · 9 comments
Labels
1. to develop Accepted and waiting to be taken care of blocked This ticket or PR is blocked by another one bug upstream

Comments

@bold-gman
Copy link

bold-gman commented Mar 1, 2018

Steps to reproduce

  1. Create contact with birthday on Feb 29th in a leap year (2016, 2012, 2008 etc.)
  2. Look in birthday calender on a Feb 29th in a leap year, you should see the appointment
  3. Look in birthday calender on a Feb 28th or March 1st of a non-leap year , you see no entry

Expected behaviour

The calender creates an alternative entry on Feb 28th (most calenders do this) or March 1st (some people preferr this solution) in non-leap years for contacts with that special birthday.

Actual behaviour

In non-leap year, the calender creates no appointment for the contacts birthday.

Server configuration detail

Operating system: Linux 3.16.0-042stab127.2 #1 SMP Thu Jan 4 16:41:44 MSK 2018 x86_64

Webserver: Apache/2.4.10 (cgi-fcgi)

Database: mysql 5.5.59

PHP version: 7.1.13-1+020180105151310.14+jessie1.gbp1086fa
Modules loaded: Core, date, libxml, openssl, pcre, zlib, filter, hash, pcntl, Reflection, SPL, session, standard, cgi-fcgi, mysqlnd, PDO, xml, calendar, ctype, curl, dom, mbstring, fileinfo, ftp, gd, geoip, gettext, iconv, imap, intl, json, exif, mcrypt, mysqli, pdo_mysql, Phar, posix, readline, shmop, SimpleXML, sockets, sysvmsg, sysvsem, sysvshm, tokenizer, wddx, xmlreader, xmlwriter, xsl, zip, Zend OPcache

Nextcloud version: 13.0.0 - 13.0.0.14

Updated from an older Nextcloud/ownCloud or fresh install:

Where did you install Nextcloud from: Tarfile from website

Signing status

Array

List of activated apps
Enabled:
 - activity: 2.6.1
 - bruteforcesettings: 1.0.3
 - calendar: 1.6.0
 - comments: 1.3.0
 - contacts: 2.1.1
 - dav: 1.4.6
 - federatedfilesharing: 1.3.1
 - federation: 1.3.0
 - files: 1.8.0
 - files_pdfviewer: 1.2.0
 - files_reader: 1.2.3
 - files_rightclick: 0.3.1
 - files_sharing: 1.5.0
 - files_texteditor: 2.5.1
 - files_trashbin: 1.3.0
 - files_versions: 1.6.0
 - files_videoplayer: 1.2.0
 - firstrunwizard: 2.2.1
 - gallery: 18.0.0
 - groupfolders: 1.2.0
 - impersonate: 1.0.2
 - issuetemplate: 0.3.0
 - logreader: 2.0.0
 - lookup_server_connector: 1.1.0
 - mail: 0.7.10
 - nextcloud_announcements: 1.2.0
 - notes: 2.3.2
 - notifications: 2.1.2
 - oauth2: 1.1.0
 - password_policy: 1.3.0
 - provisioning_api: 1.3.0
 - serverinfo: 1.3.0
 - sharebymail: 1.3.0
 - survey_client: 1.1.0
 - systemtags: 1.3.0
 - tasks: 0.9.6
 - theming: 1.4.1
 - twofactor_backupcodes: 1.2.3
 - updatenotification: 1.3.0
 - user_external: 0.4
 - workflowengine: 1.3.0
Disabled:
 - admin_audit
 - encryption
 - files_external
 - user_ldap

Configuration (config/config.php)
{
    "instanceid": "***REMOVED SENSITIVE VALUE***",
    "overwrite.cli.url": "https:\/\/cloud.example.com",
    "htaccess.RewriteBase": "\/",
    "passwordsalt": "***REMOVED SENSITIVE VALUE***",
    "secret": "***REMOVED SENSITIVE VALUE***",
    "trusted_domains": [
        "cloud.example.com"
    ],
    "datadirectory": "***REMOVED SENSITIVE VALUE***",
    "dbtype": "mysql",
    "version": "13.0.0.14",
    "dbname": "***REMOVED SENSITIVE VALUE***",
    "dbhost": "***REMOVED SENSITIVE VALUE***",
    "dbport": "",
    "dbtableprefix": "oc_",
    "dbuser": "***REMOVED SENSITIVE VALUE***",
    "dbpassword": "***REMOVED SENSITIVE VALUE***",
    "installed": true,
    "mail_smtpmode": "smtp",
    "mail_smtpauthtype": "LOGIN",
    "mail_smtpsecure": "tls",
    "mail_from_address": "***REMOVED SENSITIVE VALUE***",
    "mail_domain": "***REMOVED SENSITIVE VALUE***",
    "mail_smtpauth": 1,
    "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
    "mail_smtpport": "567",
    "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
    "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
    "loglevel": "2",
    "logfile": "\/home\/example\/domains\/cloud.example.com\/data\/nextcloud.log",
    "logtimezone": "Europe\/Berlin",
    "user_backends": [
        {
            "class": "OC_User_IMAP",
            "arguments": [
                "{host01.example.com:993\/imap\/ssl}"
            ]
        }
    ],
    "maintenance": false
}

**Are you using external storage, if yes which one: local

Are you using encryption: no

**Are you using an external user-backend, if yes which one: IMAP

Client configuration

Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0

Operating system:


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

@georgehrke
Copy link
Member

Is this behavior only reproducible with the web calendar or with other Caldav clients as well?

@bold-gman
Copy link
Author

bold-gman commented Mar 1, 2018

Just tested: When i sync the birthday calender with a calender in Outlook via CalDav Synchronizer, there is no appointment for that contacts birthday at, it is missing completely in every year.

@georgehrke
Copy link
Member

Checking RFC5545, not displaying events recurring on Feb29th is expected:

      Recurrence rules may generate recurrence instances with an invalid
      date (e.g., February 30) or nonexistent local time (e.g., 1:30 AM
      on a day where the local time is moved forward by an hour at 1:00
      AM).  Such recurrence instances MUST be ignored and MUST NOT be
      counted as part of the recurrence set.

So the issue is not the recurrence expansion but the recurrence rule in the birthday event. We will have to check how other calendar applications do that

@georgehrke georgehrke added 1. to develop Accepted and waiting to be taken care of bug needs research help wanted labels Mar 1, 2018
@georgehrke georgehrke added this to the 1.7.0-next milestone Mar 1, 2018
@georgehrke
Copy link
Member

@georgehrke
Copy link
Member

So basically we need to implement RFC7529 upstream in ical.js.
Will open an issue tomorrow

@georgehrke georgehrke modified the milestones: 1.7.0-next, Blocked by upstream Mar 1, 2018
@bold-gman
Copy link
Author

Just out of curiosity, anything new regarding this issue?

@bold-gman
Copy link
Author

Since 2020 is a leap year, I remembered this issue exists. Any idea if and when this will be solved?

@georgehrke
Copy link
Member

As i said, this requires RFC7529 support in a library that we use. So no ETA from my side.

@tcitworld tcitworld added the blocked This ticket or PR is blocked by another one label Dec 17, 2021
@tcitworld tcitworld removed this from the Blocked by upstream milestone Dec 17, 2021
@joshtrichards
Copy link
Member

This looks to be functioning as expected today. I created a leap year contact born 2020-02-29. Their birthday is visible on 2020-02-29, 2024-02-29, as well as 2023-02-28

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1. to develop Accepted and waiting to be taken care of blocked This ticket or PR is blocked by another one bug upstream
Projects
None yet
Development

No branches or pull requests

4 participants