×
Create Appointment - JSON Structure
Request body for creating an appointment and expected response from OpenDental API. Per OpenDental API.
Request (POST /api/appointments/create):
{
"PatNum": 72,
"Op": 1,
"AptDateTime": "2026-06-14 09:00:00",
"AptStatus": "Scheduled",
"Pattern": "//XXXXXX//",
"PatternSecondary": "////////XX",
"Confirmed": 19,
"Note": "Planned Appointment, Schedule for sometime in June 2026",
"ProvNum": 10,
"ProvHyg": 0,
"ClinicNum": 3,
"IsHygiene": "false",
"IsNewPatient": "false",
"Priority": "Normal",
"AppointmentTypeNum": 8,
"SecUserNumEntry": 0,
"colorOverride": "180,30,150",
"DateTimeArrived": "2026-06-14 09:00:00",
"DateTimeSeated": "2026-06-14 09:05:00",
"DateTimeDismissed": "2026-06-14 09:45:00"
}
Minimal Request (Required Fields):
{
"PatNum": 72,
"Op": 1,
"AptDateTime": "2026-06-14 09:00:00"
}
Response (201 Created):
{
"serverDateTime": "2021-05-04 09:32:45",
"AptNum": 414,
"PatNum": 72,
"AptStatus": "Scheduled",
"Pattern": "//XXXXXX//",
"Confirmed": 19,
"confirmed": "Not Called",
"TimeLocked": "false",
"Op": 1,
"Note": "Planned Appointment, Schedule for sometime in June 2026",
"ProvNum": 10,
"provAbbr": "SMITH",
"ProvHyg": 0,
"AptDateTime": "2026-06-14 09:00:00",
"NextAptNum": 0,
"UnschedStatus": 0,
"unschedStatus": "",
"IsNewPatient": "false",
"ProcDescript": "PerEx, 2BW, Pano",
"Assistant": 0,
"ClinicNum": 3,
"IsHygiene": "false",
"DateTStamp": "2021-05-03 08:30:12",
"DateTimeArrived": "0001-01-01 00:00:00",
"DateTimeSeated": "0001-01-01 00:00:00",
"DateTimeDismissed": "0001-01-01 00:00:00",
"InsPlan1": 19,
"InsPlan2": 48,
"DateTimeAskedToArrive": "0001-01-01 00:00:00",
"colorOverride": "180,30,150",
"AppointmentTypeNum": 8,
"SecUserNumEntry": 0,
"SecDateTEntry": "2021-07-04 09:12:05",
"Priority": "Normal",
"PatternSecondary": "////////XX",
"ItemOrderPlanned": 0,
"IsMirrored": "false"
}
Required Fields:
- PatNum: Patient number (must exist)
- Op: Operatory number (FK operatory.OperatoryNum)
- AptDateTime: "yyyy-MM-dd HH:mm:ss". Use GET Slots to find available times
Optional Create Fields (All):
- AptStatus: "Scheduled" (default), "Complete", "UnschedList", "PtNote", "PtNoteCompleted"
- Pattern: X and / only. Each char = 5 min. / = work, X = break. Max 9 hrs. Default "/XX/"
- PatternSecondary: Same format as Pattern. Must match Pattern length. Default "/" span
- Confirmed: definition.DefNum (Category=2). Default first in Category
- Note: Appointment note. Default blank
- ProvNum: Default patient.PriProv or office default
- ProvHyg: Hygienist ProvNum. Default 0
- ClinicNum: Default op.ClinicNum or patient.ClinicNum
- IsHygiene: "true" or "false". Default "false"
- DateTimeArrived: Check-in time "HH:mm:ss" (v25.2.10+)
- DateTimeSeated: Seated time "HH:mm:ss" (v25.2.10+)
- DateTimeDismissed: Dismissal time "HH:mm:ss" (v25.2.10+)
- IsNewPatient: "true" or "false". Default "false". Sets patient.DateFirstVisit if no procedures
- Priority: "Normal" (default) or "ASAP"
- AppointmentTypeNum: FK appointmenttype. 0 = None. Adds procedures, pattern, color
- SecUserNumEntry: FK userod.UserNum. Default 0 (v25.1.27+)
- colorOverride: "R,G,B" (0–255). Default (0,0,0) or AppointmentType color
Response Fields (All):
- serverDateTime: Server time for sync (v21.2+)
- AptNum: Unique ID (read-only)
- PatNum, Op: Patient and operatory
- AptStatus: "Scheduled", "Complete", "UnschedList", "ASAP", "Broken", "Planned", "PtNote", "PtNoteCompleted"
- Pattern, PatternSecondary: Time patterns
- Confirmed, confirmed: DefNum and human-readable status
- TimeLocked: "true"/"false" – time locked from changes
- Note, ProvNum, provAbbr, ProvHyg: Note, provider, hygienist
- AptDateTime: Start time
- NextAptNum: Linked planned/broken apt
- UnschedStatus, unschedStatus: DefNum (Category=13) and human-readable
- IsNewPatient, ProcDescript, Assistant: New patient, procedure text, assistant
- ClinicNum, IsHygiene: Clinic, hygiene flag
- DateTStamp: Last modified
- DateTimeArrived, DateTimeSeated, DateTimeDismissed: Check-in/seat/dismiss times
- InsPlan1, InsPlan2: Insurance plan IDs
- DateTimeAskedToArrive: Asked-to-arrive time
- colorOverride, AppointmentTypeNum, SecUserNumEntry, SecDateTEntry: Color, type, security
- Priority, ItemOrderPlanned, IsMirrored: Priority, order, mirror flag
Usage Notes:
• Boolean fields: "true" or "false" (strings)
• Date/time: "yyyy-MM-dd HH:mm:ss"
• colorOverride: "R,G,B" no spaces
• Pattern: each char = 5 minutes