[Bug]: Removing personal availability makes the user unavailable at all times instead of restoring the default state
Nobody has claimed this yet.
- Dominant language
- PHP
- Stars
- 36.9k
- Forks
- 5.2k
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 713
Description
⚠️ This issue respects the following points: ⚠️
- This is not a troubleshooting question, general support matter, or webserver/proxy problem, but likely a bug (if unsure, ask the Community Help Forum).
- This issue is not already reported on Github OR solved at the Community Help Forum (I've searched!).
- I'm using a maintained major version of Nextcloud Server and tested against the latest patch level. (Supported major versions and current patch levels).
- I agree to follow Nextcloud's Code of Conduct.
- I've tried my best to provide clear reproduction steps that someone unfamiliar with this bug could use to reproduce it.
Bug description
When configuring availability under Personal settings → Availability, the configured working hours are correctly taken into account by the Calendar / Free-Busy functionality.
For example, if availability is configured for specific weekdays and times, the user's availability in the Calendar is restricted accordingly. This works as expected.
However, when all configured availability entries are removed again, the original/default behavior is not restored.
Instead, the user is then shown as not available at all, as if an empty availability configuration means that there is no available time.
There currently seems to be no way in the UI to reset the availability configuration to the original state that existed before any custom availability was configured.
An empty or removed availability configuration should mean "no custom availability restriction configured", not "user is never available".
Steps to reproduce
- Open Personal settings → Availability.
- Configure availability for one or more weekdays, for example Monday to Friday from 08:00 to 17:00.
- Save the configuration.
- Open the Calendar and check the user's availability / Free-Busy information, for example using Find a time when creating an event with this user as an attendee.
- Verify that the configured availability correctly restricts the available times.
- Return to Personal settings → Availability.
- Remove all configured availability entries / time slots and save the configuration.
- Check the user's availability again in the Calendar / Free-Busy view.
Expected behavior
Removing all custom availability entries should reset the setting to its original/default state.
When no custom availability is configured, the user should not be considered unavailable by default. Availability should behave the same way as it did before the user configured custom availability for the first time, with the normal calendar events determining Free/Busy information.
In other words:
No availability configuration should mean "no additional availability restriction".
Ideally, there should also be an explicit way to reset availability to the default state.
Nextcloud Server version
34
Operating system
Debian/Ubuntu
PHP engine version
PHP 8.5
Web server
Apache (supported)
Database engine version
MySQL
Is this bug present after an update or on a fresh install?
None
Are you using the Nextcloud Server Encryption module?
None
What user-backends are you using?
- Default user-backend (database)
- LDAP/ Active Directory
- SSO - SAML
- Other
Configuration report
List of activated Apps
Nextcloud Signing status
Nextcloud Logs
Additional info
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in Personal settings → Availability and follow the saved empty configuration into Calendar's Free-Busy handling. Reproduce the configure/remove sequence, then compare the empty state with the pre-configuration behavior. Done means removing every entry restores normal event-based availability rather than marking the user unavailable.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100