nextcloud / nextcloud/calendar

appointment booking problem (linked to increment constraint ?)

Open
#6,469 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

0. to triage bug Feature: Appointments
Dominant language
JavaScript
Stars
1.2k
Forks
332
Avg merge
16h 13m
Merged PRs (30d)
137

Description

Steps to reproduce
  1. create an appointment with the following parameter :
  • duration : 45 min
  • increment : 45 min.
  1. users cannot book any appointment, they have the following error : "Could not book the appointment. Please try again later or contact the organizer." for all slot.

when setting increment constraint to 5, 15, 30, 60min, it works fine !
could you help us ?

Expected behavior

can book an appointment

Actual behaviour

have an error (Could not book the appointment. Please try again later or contact the organizer)

Calendar app version

4.7.16

CalDAV-clients used

No response

Browser

firefox 115.8.0esr

Client operating system

Ubuntu

Server operating system

Debian 11

Web server

Apache

Database engine version

MariaDB

PHP engine version

PHP 8.2

Nextcloud version

29.0.8

Updated from an older installed version or fresh install

Updated from an older version

List of activated apps

Enabled:

  • activity: 2.21.1
  • bruteforcesettings: 2.9.0
  • calendar: 4.7.16
  • cloud_federation_api: 1.12.0
  • comments: 1.19.0
  • contacts: 6.0.0
  • dav: 1.30.1
  • davcatcher: 0.0.1
  • deck: 1.13.2
  • drawio: 3.0.3
  • external: 5.4.1
  • federatedfilesharing: 1.19.0
  • files: 2.1.1
  • files_antivirus: 5.6.0
  • files_downloadlimit: 2.0.0
  • files_pdfviewer: 2.10.0
  • files_reminders: 1.2.0
  • files_sharing: 1.21.0
  • files_trashbin: 1.19.0
  • files_versions: 1.22.0
  • groupfolders: 17.0.5
  • impersonate: 1.16.0
  • logreader: 2.14.0
  • lookup_server_connector: 1.17.0
  • notifications: 2.17.0
  • notify_push: 0.7.0
  • oauth2: 1.17.1
  • ocs_api_viewer: 1.0.7
  • onlyoffice: 9.5.0
  • provisioning_api: 1.19.0
  • quota_warning: 1.20.0
  • related_resources: 1.4.0
  • serverinfo: 1.19.0
  • settings: 1.12.0
  • sharebymail: 1.19.0
  • side_menu: 3.13.1
  • spreed: 19.0.10
  • systemtags: 1.19.0
  • tasks: 0.16.1
  • text: 3.10.1
  • theming: 2.4.0
  • theming_customcss: 1.17.0
  • twofactor_backupcodes: 1.18.0
  • user_ldap: 1.20.0
  • user_saml: 6.3.0
  • user_usage_report: 1.13.1
  • viewer: 2.3.0
  • workflowengine: 2.11.0
    Disabled:
  • admin_audit: 1.19.0
  • circles: 29.0.0-dev (installed 23.1.2)
  • contactsinteraction: 1.10.0 (installed 1.5.0)
  • dashboard: 7.9.0 (installed 7.0.0)
  • encryption: 2.17.0
  • federation: 1.19.0 (installed 1.2.0)
  • files_external: 1.21.0 (installed 1.19.0)
  • files_fulltextsearch: 29.0.1 (installed 29.0.1)
  • files_mindmap: 0.0.30 (installed 0.0.30)
  • files_texteditor: 2.15.1 (installed 2.15.1)
  • firstrunwizard: 2.18.0 (installed 2.13.0)
  • fulltextsearch: 29.0.1 (installed 29.0.1)
  • fulltextsearch_elasticsearch: 29.0.1 (installed 29.0.1)
  • nextcloud_announcements: 1.18.0 (installed 1.1)
  • notes: 4.11.0 (installed 4.11.0)
  • password_policy: 1.19.0 (installed 1.2.2)
  • photos: 2.5.0 (installed 1.0.0)
  • privacy: 1.13.0 (installed 1.0.0)
  • recommendations: 2.1.0 (installed 0.4.0)
  • support: 1.12.0 (installed 1.0.0)
  • survey_client: 1.17.0 (installed 1.0.0)
  • suspicious_login: 7.0.0 (installed 6.0.0)
  • tables: 0.8.1 (installed 0.8.1)
  • twofactor_totp: 11.0.0-dev
  • updatenotification: 1.19.1 (installed 1.2.0)
  • user_status: 1.9.0 (installed 1.0.1)
  • weather_status: 1.9.0 (installed 1.0.0)
  • whiteboard: 1.0.4 (installed 1.0.4)
Nextcloud configuration

No response

Web server error log

{"reqId":"kG1k26QLGOpNRIJuhkIc","level":2,"time":"2024-11-06T18:37:07+01:00","remoteAddr":"","user":"","app":"calendar","method":"POST","url":"/index.php/apps/calendar/appointment/48/book","message":"No slot available for start: 1730976300, end: 1730979000, config id: 48","userAgent":"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0","version":"29.0.8.1","exception":{"Exception":"OCA\Calendar\Exception\NoSlotFoundException","Message":"Could not find slot for booking","Code":0,"Trace":[{"file":"/var/www/nextcloud/apps/calendar/lib/Controller/BookingController.php","line":195,"function":"book","class":"OCA\Calendar\Service\Appointments\BookingService","type":"->","args":[["OCA\Calendar\Db\AppointmentConfig",48],1730976300,1730979000,"Europe/Paris","","",""]},{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":232,"function":"bookSlot","class":"OCA\Calendar\Controller\BookingController","type":"->","args":[48,1730976300,1730979000,"","****","","Europe/Paris"]},{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":138,"function":"executeController","class":"OC\AppFramework\Http\Dispatcher","type":"->","args":[["OCA\Calendar\Controller\BookingController"],"bookSlot"]},{"file":"/var/www/nextcloud/lib/private/AppFramework/App.php","line":184,"function":"dispatch","class":"OC\AppFramework\Http\Dispatcher","type":"->","args":[["OCA\Calendar\Controller\BookingController"],"bookSlot"]},{"file":"/var/www/nextcloud/lib/private/Route/Router.php","line":331,"function":"main","class":"OC\AppFramework\App","type":"::","args":["OCA\Calendar\Controller\BookingController","bookSlot",["OC\AppFramework\DependencyInjection\DIContainer"],["48","calendar.booking.bookslot"]]},{"file":"/var/www/nextcloud/lib/base.php","line":1058,"function":"match","class":"OC\Route\Router","type":"->","args":["/apps/calendar/appointment/48/book"]},{"file":"/var/www/nextcloud/index.php","line":49,"function":"handleRequest","class":"OC","type":"::","args":[]}],"File":"/var/www/nextcloud/apps/calendar/lib/Service/Appointments/BookingService.php","Line":164,"message":"No slot available for start: 1730976300, end: 1730979000, config id: 48","exception":{},"CustomMessage":"No slot available for start: 1730976300, end: 1730979000, config id: 48"}}

Log file

No response

Browser log

Server response > 404 : {"status":"fail","data":null}

Additional info

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in apps/calendar/lib/Service/Appointments/BookingService.php at line 164, following the call from BookingController.php line 195. Reproduce an appointment with 45-minute duration and increment, then inspect why the requested slot is rejected while other increments work. Done means users can book the available slot without the NoSlotFoundException.

Written by the indexing model from the issue text.

Assessment

Tech stack
apache, javascript, mariadb, php
Domain
backend, databases, web-dev
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.