Get Calendar Settings
Response
PHP timezone identifier (e.g.,
"America/Bogota", "UTC")Default: "America/Bogota"Default meeting duration in minutesDefault:
60Maximum number of events that can be booked per dayDefault:
10Minimum hours in advance required for bookingDefault:
1Operating hours for each day of the week
Same structure as Monday
Same structure as Monday
Same structure as Monday
Same structure as Monday
Same structure as Monday
Same structure as Monday
Success Response Example
Save Calendar Settings
Request
Valid PHP timezone identifier (validated against
DateTimeZone::listIdentifiers())Default meeting duration in minutes (must be > 0)
Maximum bookable events per day (must be > 0)
Minimum advance notice required in hours (must be >= 0)
Weekly schedule configuration
Same structure as Monday
Same structure as Monday
Same structure as Monday
Same structure as Monday
Same structure as Monday
Same structure as Monday
Validation Rules
Duration: Must be greater than 0 minutes
Max Events: Must be greater than 0
Min Advance: Must be 0 or positive
Time Format: Must be HH:MM (24-hour format)
Time Range: End time must be after start time
Business Days: At least one day must be enabled
Timezone: Must be a valid PHP timezone identifier
Response
Indicates if settings were saved successfully
Confirmation message
Validation or system error message (only present on failure)
Success Response Example
Error Response Examples
Validation Error
Multiple Validation Errors
No Business Days
Invalid Timezone
Error Handling
| Status Code | Description |
|---|---|
| 200 | Settings saved successfully |
| 400 | Validation error (check error message for details) |
| 405 | Method not allowed (POST required for save) |
| 500 | Internal server error |
Implementation Details
The save endpoint:- Validates all numeric constraints
- Validates time formats using
App\Helpers\TimeValidator - Ensures at least one business day is enabled
- Uses database transactions for atomicity
- Stores business hours as JSON per day
- Logs changes for audit purposes
- GET:
api/get-calendar-settings.php:10-62 - POST:
api/save-calendar-settings.php:28-145
Notes
These settings only take effect when calendar integration is enabled in the main bot settings (
calendarEnabled: true).