Open Bug 386983 Opened 17 years ago Updated 2 years ago

Archiving and deleting old events and tasks (auto delete after...)

Categories

(Calendar :: General, enhancement)

enhancement

Tracking

(Not tracked)

People

(Reporter: schadw, Unassigned)

References

Details

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4
Build Identifier: all

Because Sunbird and Lightning are getting slower and slower by taking all historical data during starting phase, it would be a good idea to have a function for two instances:
+ to delete events (and tasks) that took place in the past (before a particular date - date should be possible to be chosen)
+ to have the possibility to move them into an archive (so, that it could be possible to make them visible again - on demand, by restore or anything else). So the data can be used for documentation.

Advice: This should regard, that much of the old events are parts of ongoing recurring events!

So it will be possible to reduce database to most necessary data, Sunbird and Lightning will work even faster and in special cases the user is enabled o store historical data off from actual and will be able to make them available again.

Reproducible: Always

Steps to Reproduce:
1.
2.
3.
Actual Results:  
none: RFE

Expected Results:  
none: RFE

see above (at details)
Summary: RFE: archiving and deleting old events and tasks → Archiving and deleting old events and tasks
Whiteboard: qa-wanted
This would be analogous to Thunderbirds "retention policy". Sounds like a good idea to me. Basic idea how to solve:

When calendars are auto-refreshed (i.e when onLoad is fired), then the composite calendar filters out events that are old and moves them to the respective calendar's archive. The calendar's archive can be stored in a separate storage.sdb, where the ID matches the original calendar id, similar to the offline cache.

If we want to be super-accurate, then we could also set up a timer between events that finds out when the next event will be archived, in case that happens before the next auto-refresh. When the timer expires, then the event can be moved.

Status: UNCONFIRMED → NEW
Ever confirmed: true
Summary: Archiving and deleting old events and tasks → Archiving and deleting old events and tasks (auto delete after...)
I think that archiving old events/tasks will use significant system resources each time that it happens.  In addition, my guess is that most people would only need this to happen once per day, once per month, or (myself) once per year.

If it's going to be automatic, then I think it should happen only after the computer has been idle for ten minutes or so, or perhaps only when Thunderbird starts.  Even then, I don't think that I want this automatic behavior running at all on my computer and hope that we'll be able to disable it.

I do like the idea of having a command that we can run (on demand) that opens a dialog and lets us specify the cutoff date, and source/target calendars.  As Wolle wrote, this would be especially nice if it automatically handled recurring events that cross the cutoff date, and tasks that start/end before the cutoff date but haven't been marked as completed yet.  Those are examples of logic that this feature could have that the unifinder doesn't have.
Keywords: helpwanted
Has this request died? I would really like to see this feature added to Calender. The load times, esp. over a network are horrible after using a file for a year or more.
This enhancement is not currently a priority for the calendar team, we won't turn down patches from the further community though. Sorry this feature hasn't made it yet.
Any news on this line item? I like Pete Riley's suggestion. Archiving should be triggered manually only but events should have an auto-expire date. Once this date has passed, the event would be silently deleted off the calendar.
(In reply to ph0nq from comment #8)
> Any news on this line item? I like Pete Riley's suggestion. Archiving should
> be triggered manually only but events should have an auto-expire date. Once
> this date has passed, the event would be silently deleted off the calendar.

Oh, I'm with you, that archiving could take place only when started manually.
But I'm not with you by deleting any entry silently; it should be archived in full awareness of the action, at least to have the chance recovering "when did I ...?", to have some notes on a task or minutes on an event, to have notes for chronicles or anything else.
Lightning is, at least the way I use it, an electronic agenda.

I do NOT throw away my old paper agendas, why the should I have to delete old Lightning entries?

I suggest that an archiving feature be added to Lightning. This archiving feature should have a number of check boxes and corresponding drop-down menus.

CHECK BOXES                          DROP-DOWN MENUS
-----------                          ---------------
ALL ENTRIES                          SELECT CALENDARS  OR
DATE RANGE                           SELECT CALENDARS
DELETE AFTER ARCHIVING
INCLUDE RECURRING EVENTS             SELECT PERIOD
Somewhat related - how about each individual event/task having an "expires" date?
I often times want to remind myself of some event, but always track them down afterwards.
Other events I keep around for longer so that I can look back.
Right now, I do this manually by using a "temporary" calendar, and manually deleting all old events in that calendar regularly.
Would be very helpful if I could:
a. create events that auto expires after specific time
b. have an "archive" function to archive/delete all old events
A manual solution.

As I mentioned in 2014, 'I do NOT throw away my old paper agendas, why the should I have to delete old Lightning entries?'

Well, I figured out a manual solution. Just like I get a new paper agenda every year, I create a new electronic agenda every year.

This only has to be done once a year!

This way I can keep ALL of my Lightning entries, sorted by year. Each year is a separate calendar. So I can have all of my one time events in the yearly calendar and recurring events in their respective calendars. i.e. birthdays, historical events, holidays specific to where I live, etc.

BTW. I even moved, over time, all my old events into their own yearly calendars, so I now have calendars going back to 2006.
@Udvarias Ur: Sorry, I don't fully agree:

Of course, we can use this or any other work around by clickin' and typin' a lot of actions.
This would be an action chain performed by an individual and therefore it proves to be error-prone.

Howerver: Any work around could help to meet the expected result,
but is not an approach to solve this RFE.

Hi, look up to the text typed, when this entry was born. I started to discuss and finally find a systematic solution ...
Dear wolle,

Generally I agree with you. The more clicking and typing an individual does the greater the possibility of errors being introduced.

That being said. Creating a new calendar, a task generally done manually, requires only 5 clicks and 4 characters (the year). Once that is done (say on January 1) the new year's calendar can be made the default calendar and all one-time entries added to it.
Udvarias, I have to disagree with you on two accounts.
You say you don't throw away old paper agendas... not every keeps them. On a rough count, I have around 15-20 calendar events in any give weekday for work, another 5 or so from home, holiday dates, or my favorite sporting events, getting the total up to 20-25/day or 100-125 per work week, plus a handful on weekend. That's roughly 6000 agendas in a year. If I had them in paper, there's no way I would keep more than perhaps 10% of that, let alone keep them year after year.
Your solution to move a year's worth into separate calendar also doesn't work for me for couple of reasons. First, I'm not sure if that will resolve the performance. Lightning will still read/parse those calendars and all the events in it, so that still eats into the performance. The second reason is that I will need to sift through those 6000 or so events every year, figure out which is recurring event that is still active and which are one time event or recurring event that has ended.

I know that there are implementation details to work out, but the concept of this ask is really very simple. Have the lightning global default "event-expires-in" valued to (never, immediately after event finished, x-minutes/hours/days/months after event, ....), have individual event option to set these values as well. This can be handled in similar fashion as the "Reminder" option. And this expiration could be processed during startup, at fixed intervals, when idle, or when sync/refresh occurs. If you do not want to expire any of your events/agenda, then set the global expires-in value to never, and forget about it. I think this can be really useful item.

As it is now, I spend unnecessary time each week cleaning out old events from all my calendars.
I do it weekly so that it will only be few minutes each time.
But I'd rather spend that few minutes doing something else...
Dear Marcus,

I think you've missed the point here.

wolle, back in 2007 wrote:
          "+ to delete events (and tasks) that took place in the past …"
          "+ to have the possibility to move them into an archive …"

These requests would give people the freedom, which is what Open Source software is all about, to either delete or archive old events.

Whether the archiving is done automatically or manually is irrelevant.

As I mentioned in my earlier post (something you seem to have ignored).
     1. Create 1 or more calendars for recurring events.
          This will eliminate the time it takes you to "… figure out which is recurring event…"
          I have a calendar for astronomical events (like your sporting events), but these are ALL in a separate calendar.
          So I can see them, or not, and search them, and ONLY them, whenever I want.
          If you did that you could enter scores and / or other facts about a sporting event that you feel important.
          Thereby keeping a record of the sporting event data you think is worth while keeping.

     2. Create a new calendar for each year 2016, 2017, etc.
          In the calendar tab select View → Calendar → Calendar pane.
          In that menu check "Show Calendar Pane" and "Calendar List"
          This will display a panel / pane at the left, which lists ALL the calendars created.
          Each has a check box beside it.
          If the check box is NOT checked, that calendar is NOT parsed or loaded, thereby improving performance.

Based on the description of how you use the software, I would, in addition to the annual calendars NONE CHECKED, and recurring calendars which are:
     1. Create a CURRENT calendar, for my 1 time events.

     2. Instead of deleting old events, I would simply move them into the appropriate annual calendar.
          This can be done with a simple drag and drop.
This would actually require no more, possible less, work than what you are doing right now.

BTW. You could even create a CURRENT WORK calendar, and an CURRENT HOME calendar as well as annual calendars for each. So, if your boss asks you "Why …?" all you would have to do is look it up in the appropriate WORK calendar.

All I'm saying is that the it is possible to archive events and improve performance using the tools available, with a little imagination. Sure it would be great to have all this automated. HOWEVER,
     1. Automation is not needed.

     2. Any automation, wolle in 2007 suggested, should be dome in such a way as to provide the MAXIMUM flexibility.
        Allowing users can do what they need to NOT what the developers force them to.
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.