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

deleting a single instance of a recurring event is not possible #97

Open
SlothOfAnarchy opened this issue Nov 3, 2016 · 11 comments
Open

Comments

@SlothOfAnarchy
Copy link

First of all, great app!

Concerning the issue: I have set up a recurring event (weekly) and want to delete a single instance of it. This is unfortunately not possible.
When I attempt to delete a single instance I get these two options

  • remove this instance and all instances in the future
  • remove all instances

It would be great to have a third option to only remove this single instance.

@Peque
Copy link

Peque commented Nov 3, 2016

It happens to me as well, with new recurrent events.

However, I have a recurrent event that I created long time ago (not with Etar), and I can delete single instances just fine with Etar. (shrug)

@SlothOfAnarchy
Copy link
Author

It seems like it has to do with calendar syncing, because in DeleteEventHelper.java the dialog item "Only this event" is removed if mSyncId is null.

Just using a synced calendar doesn't change anything for me though. I created recurring events in both my local (offline) calendar as well as in Google Calendar and in no case can I remove only a single instance.

@smichel17
Copy link
Contributor

I've intermittently experienced that option disappearing and I've never been able to isolate a cause.

@Tarkken
Copy link

Tarkken commented Aug 16, 2018

Is there an update on why this occurs? Currently experiencing it with all of my Local Calendars created with "Offline Calendar".

@Gitsaibot
Copy link
Contributor

Gitsaibot commented Aug 16, 2018

The calendar must be synced. Look at: SufficientlySecure/offline-calendar#15
Maybe we can check if the calendar is only a local calendar and display the option ?

@eickeh
Copy link

eickeh commented Mar 1, 2020

Hi guys! First of all, thanks for the great work on this app!
Just for completeness of this thread: The problem is that mSyncId can't be set for calendars of type CalendarContract.ACCOUNT_TYPE_LOCAL, but unfortunately it is necessary to create exceptions at the moment.
I've seen that @dschuermann is already building a workaround with the CalendarRepository class. I would also love to see this feature work, so if there is anything I can do to contribute, please tell me.

@marbx
Copy link

marbx commented Feb 27, 2022

Workaround with DAVx5: sync two times.
After the second sync, the option appears

@jondo
Copy link

jondo commented Apr 1, 2022

Unfortunately, I see this in a calendar that was synced from a CalDAV server, but where the server is not reachable any more. So the proposed workaround does not work for me.

@feefladder
Copy link

So some of the culprits: (I haven't really digged through the code so don't really understand ramifications)

for delete:

if (mSyncId == null) {
// remove 'Only this event' item
labelArray.remove(0);
labelIndex.remove(0);
if (!model.mIsOrganizer) {
// remove 'This and future events' item
labelArray.remove(0);
labelIndex.remove(0);
}

This function also has access to the class's mModel, so the following could be added in an if statement:
boolean isLocal = mModel.mSyncAccountType.equals(CalendarContract.ACCOUNT_TYPE_LOCAL);

which would solve the issue right?

The same problem is for modifying an event, which seems to have completely different logic somehow, but here is the location:


However, this already has problems more down the line:
// Update this if we start allowing exceptions
// to unsynced events in the app
mModification = notSynced ? Utils.MODIFY_ALL
: Utils.MODIFY_SELECTED;
if (mModification == Utils.MODIFY_SELECTED) {
mModel.mOriginalSyncId = notSynced ? null : mModel.mSyncId;
mModel.mOriginalId = mModel.mId;
}

Currently I don't really have time to work on this though, but if people think this is a good adjustment like that, then I can make a simple pr.

@Tom582
Copy link

Tom582 commented Mar 12, 2024

I second the wish to introduce the option to edit or remove single events inside a recurring event.

In this connection, I would like to add the following information:

  • I am currently running Etar 1.0.41 and keep all my events on an offline calendar.
  • On this calendar there are a several recurring events, that allow only to modify/delete "this or future events" and "all events", BUT there is at least one recurring event that offers in addition to modify/delete "only this event".

Honestly, I am still puzzled, why and how it is possible that one Etar revision offers different modification alternatives for different event series. Are the modification alternatives somehow saved inside the event series?

@The-First-King
Copy link

Interestingly, this problem only appears when using a clean Android AOSP with the Etar-Calendar, with no Open GApps services. Previously, I used a Pico Package of Open GApps services with the Etar-Calendar, and the problem was not present. On another device, I’m using a clean Android AOSP with DAVx5 to sync the Google calendar, and this problem appears.

For example, in the Thunderbird desktop version, if the recurring entry is removed for a certain date from the calendar, it does not synchronize and reappear in the calendar as it does in the Etar-Calendar.

Thus, it turns out that if I have a monthly recurring event on the calendar with a duration of, for example, 3 days, which is used as a reminder, then when the task is completed, and I delete it from the calendar, this entry appears again, what a bit confusing and making me think that I need to do it again because it is not undone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests