_I'm not sure if it's correct in "server" component - but it does not only affect calendar or contacts, so it's either both - or "server", thus I report it here. Feel free to point me to re-insert it somewhere else._
Deleting the address book should recursively delete all contacts, and while doing so, delete all previously created birthday events.
Deleting the address book leads to stale birthday events in calendar that cannot be deleted (and, even worse, also have reminders (valarms) set.
How to get rid of stale events? Should I edit the nexcloud database. How (without harming consistency)? My idea is to
Debian jessie fully patched, Apache 2.4.10 prefork, PHP 5.6.24, MySQL 5.5.52, Nextcloud 10.0 (stable) freshly installed via Webinstaller.
As written in the forum, the following command should solve the issue:
./occ dav:sync-birthday-calendar
But since you have no console access, I'm not sure if something is possible to fix this atm.
Thanks!
I do have console access.
Does that command rebuild the birthday calendar from scratch (delete all its events and re-create them from the contacts) or does it search for duplicates and remove them?
I think I found a workaround for those without console access:
As far as I can judge from my quick look, it only adds/updates entries
after some tests i can get database access if I use
'dbhost' => '127.0.0.1', in config.php - localhost didn't work.
so I'm able to run the command
ich@owncloud/htdocs$ ./occ dav:sync-birthday-calendar
Start birthday calendar sync for all users ...
2 [============================]
sadly the problem did not solve. I still have to birthday entry's in calendar. what if i'am delete the calendar completely and let it create new?
sadly the problem did not solve. I still have to birthday entry's in calendar. what if i'am delete the calendar completely and let it create new?
That should work...
for me it is solved with deleting the contact birthday calendar.
and let it create new with ./occ dav:sync-birthday-calendar.
Good to know there's a workaround. The bug is about proper deletion, though. Not sure whether triggering both "delete all birthday calendars" and "./occ dav:sync-birthday-calendar" is is a safe solution.
Another way to solve it could be to provide a selection mechanism for contacts (which is a good idea for other tasks, too, such as putting many contacts in a group, or exporting them) so that users may delete all contacts from their address book. When single contacts are deleted, it sould be possible to trigger deletion of the birthday cal entries the same way as they are created. This would need to be accompained by a mechanism that prohibits deletion of an address book as long as it still contains contacts.
Should this bug be closed? It's not implemented yet, is it?
Yes, it's not implemented yet. But I'd appreciate very much if automatic deletion of birthdays in calendar was available :)
A workaround is no solution.
For those who face the same bug, it might be useful to know the occ command has a different behavior when called globally or with a username (at least on NC v13.0.1)
After deleting the anniversary calendar for a specific user, running occ globally :
$ ./occ dav:sync-birthday-calendar
The process control (PCNTL) extensions are required in case you want to interrupt long running commands - see http://php.net/manual/en/book.pcntl.php
Start birthday calendar sync for all users ...
(...)
While the command was successful, the deleted calendar isn't rebuilt. Even more, checking the calendars table from the DB will confirm the command didn't work.
Instead, using it with the username will have the expected result :
$ ./occ dav:sync-birthday-calendar 'specific_username'
The process control (PCNTL) extensions are required in case you want to interrupt long running commands - see http://php.net/manual/en/book.pcntl.php
Re-enabling birthday calendar for specific_username
Start birthday calendar sync for specific_username
I麓m sorry, but
./occ dav:sync-birthday-calendar 'specific_username'
did not helped me.
My Birthday Calendar is absent anyway..
i麓ve done these Steps:
using NC 13.0.4
I ran into this bug using NextCloud 14.0.1.
For me,
php occ dav:sync-birthday-calendar 'specific_username'
worked and re-enabled the birthday calender, which I had to delete before as it was messed-up with duplicate entries.
OTOH,
php occ dav:sync-birthday-calendar
was not sufficient.
@georgehrke :)
Ok, so this is not one bug, but multiple ones:
occ day:sync-birthday-calendar (which uses syncUser) does indeed not delete orphaned birthday entries: