Centre Configuration
Centre working hours, holiday schedules, timezone settings, and how centres override tenant defaults.
Centre Configuration
Each centre (branch/clinic) has its own working hours, holiday schedules, and timezone. These settings affect slot generation and appointment availability for all doctors at the centre.
Config Hierarchy
Working Hours
Working hours define when the centre is open for appointments. Each day of the week can have multiple time windows:
[ { "day": 1, "is_open": true, "times": [ { "start": "09:00", "end": "13:00" }, { "start": "14:00", "end": "18:00" } ] }, { "day": 2, "is_open": true, "times": [ { "start": "09:00", "end": "13:00" }, { "start": "14:00", "end": "18:00" } ] }, { "day": 3, "is_open": true, "times": [ { "start": "09:00", "end": "13:00" }, { "start": "14:00", "end": "18:00" } ] }, { "day": 4, "is_open": true, "times": [ { "start": "09:00", "end": "13:00" }, { "start": "14:00", "end": "18:00" } ] }, { "day": 5, "is_open": true, "times": [ { "start": "09:00", "end": "13:00" }, { "start": "14:00", "end": "18:00" } ] }, { "day": 6, "is_open": true, "times": [ { "start": "09:00", "end": "13:00" } ] }, { "day": 7, "is_open": false, "times": [] }]Working Hours Fields
Field | Type | What It Does |
|---|---|---|
day | number (1-7) | Day of the week (1 = Monday, 7 = Sunday) |
is_open | boolean | Whether the centre operates on this day |
times | array | List of time windows for this day |
times[].start | string (HH:MM) | Opening time for this window |
times[].end | string (HH:MM) | Closing time for this window |
Multiple Windows
Holiday Schedule
Holidays override regular working hours. They can be full-day closures or partial-day adjustments:
[ { "date": "2026-01-26", "name": "Republic Day", "is_full_day": true, "times": [] }, { "date": "2026-03-14", "name": "Holi (Half Day)", "is_full_day": false, "times": [ { "start": "09:00", "end": "13:00" } ] }]Field | Type | What It Does |
|---|---|---|
date | string (YYYY-MM-DD) | The holiday date |
name | string | Display name for the holiday |
is_full_day | boolean | If true, centre is completely closed; if false, uses the times array |
times | array | Reduced operating hours for partial-day holidays |
Timezone
Each centre has a timezone setting that determines how times are interpreted and displayed:
Field | Type | Default | What It Does |
|---|---|---|---|
timezone | string | Asia/Kolkata | IANA timezone identifier for this centre |
All time calculations (slot generation, appointment times, reminders) use the centre's timezone. Supported format: IANA timezone names like Asia/Kolkata, America/New_York, etc.
Doctor Availability Rules
Within each centre, doctor availability is defined through schedule rules. Each rule defines when a doctor is available at this centre:
{ "entry_type": "SCHEDULE", "rule": { "valid_from": 1735689600, "valid_until": null, "recurrence": { "frequency": "WEEKLY", "interval": 1, "days_of_week": [ 1, 2, 3, 4, 5 ] }, "date": null, "times": [ { "start": "09:00", "end": "13:00" }, { "start": "15:00", "end": "18:00" } ], "all_day": false, "reason": null, "priority": 0 }}Entry Types
Type | Purpose | Example |
|---|---|---|
SCHEDULE | Regular recurring availability | Doctor available Mon-Fri, 9am-1pm and 3pm-6pm |
BLOCK | Temporary unavailability | Doctor on leave Dec 25-31 |
OVERRIDE | One-time schedule change | Doctor available on a Sunday for a special clinic |
Recurrence Rule
Defines repeating patterns for SCHEDULE entries:
{ "frequency": "WEEKLY", "interval": 1, "days_of_week": [ 1, 2, 3, 4, 5 ], "end_date": null, "count": null}Field | Type | What It Does |
|---|---|---|
frequency | enum | DAILY, WEEKLY, MONTHLY, or YEARLY |
interval | number | Repeat every N periods (1 = every week, 2 = every other week) |
days_of_week | number[] | Which days (1=Mon to 7=Sun) for WEEKLY frequency |
end_date | number or null | When the recurrence stops (epoch seconds, null = forever) |
count | number or null | Maximum occurrences (alternative to end_date) |
What's Next
- Doctor Configuration — Doctor-level overrides that sit above centre settings
- Service Configuration — Centre-service overrides for specific services
- Walk-In Configuration — Walk-in queue settings at the centre level
Last updated on