I am using a global *.ics database with a lot of different calendar programs. But it seems that Orage does not understand ics. In example BEGIN:VEVENT UID:3c866540-4443-483a-93d8-125ba57eea5f CLASS:PUBLIC DTSTAMP:20140526T131312Z CREATED:20131024T163756Z LAST-MODIFIED:20140526T131312Z SUMMARY:Name of Person DESCRIPTION:Beginn 1961 CATEGORIES:Geburtstag DTSTART;VALUE=DATE:19610326 DTEND;VALUE=DATE:19610328 TRANSP:TRANSPARENT RRULE:FREQ=YEARLY END:VEVENT is NOT displayed
I figured out this has to do something with the date Dates bevore 1970 are not supported
Created attachment 5530 Screenshot Anybody working on this? No? This bug can not be as big! As you can see, the reminder at 23 June is not displayed in the main events list. But selecting the "extended" event list and having marked "only first repeating" then the reminder is there! (Without "only first repeating" this won't work). Well, I am rather going to change my calendar program than changing my database.
Hello Juebo, Were you definitely using version 4.10? This should have been fixed by Juho in 4.10 as per https://mail.xfce.org/pipermail/xfce/2013-December/032722.html I'll try to reproduce this when I get out of work.
Hi Steven, yes, my Orage says it was 4.10.0 and apparently Juho did not fix ist. My Orage ist not from PPA but from Ubuntu repository.
Hi Juebo, I'm able to reproduce your issue. It also has a few other odd effects. The cause appears to be due to locale only having 2 digits for the year. My current fix is to attach a tm struct to the StartDate_button but a little more work needs to be done. Regards Steve
It looks like my suggested work around would have a limitation of the start year having to be >= 1900 which is due to a limitation of struct tm. It may be worth fixing this once and for all by not using struct tm and also by not passing around dates as i18n strings which can (often?) result in a 2 digit year.
Hi Steven, I do actually not know what you are doing. As far as I understand you have to do a calculation like "is <current date> + <look days in advance> greater or equal <startdate>"? Well, there are a lot of good algorithms to perform this (look for "Julian Day"). There are no markable limitations in this algos as perhaps "4000 B.C.". In second question "is appointment day and Month but with calendar year" within my scope" the difference of years does not matter at all.
Hello Juebo, You're right about how to calculate and compare dates, unfortunately it's not a case of choosing a reasonable algorithm. I was also expecting it to be a very quick fix like this. I'm very limited on time this month but I'll try and get a fix in soon. Here's more info if you're interested. The first limitation I described is due to how Orage currently passes around and converts dates. For example, it converts localized widget text to a tm struct. A localized year can be only 2 digits, so there is no way to tell the difference between 1965 and 2065, or any other century. This problem is easily reproducible, create an appointment on 1st Jan 1965, go to 1st Jan 2065 and it will be there. When you export it, you'll see the DTSTART is 2065. The same problem occurs when you load/import a date which isn't in the current century. The second limitation is due to struct tm's year member being an offset from year 1900 (see http://www.cplusplus.com/reference/ctime/tm/) and while it's a signed integer and it would seem reasonable to use a negative year to specify years before 1900, it's undefined behavior. This prevents us using strftime/strptime to easily localize dates.
News about this bug: as I figured out the problem is DTEND tack. When DTEND is before 1970 then this appointment is not displayed. As a workaround I removed all DTEND- lines in ics-file.
The orage project is not maintained anymore and has been archived. Closing bugs.