Doctoralia Doctor Schedule Monitor
Pricing
from $25.00 / 1,000 slot records
Doctoralia Doctor Schedule Monitor
Monitor one Doctoralia doctor's appointment calendar. Every run returns booked vs free 30-minute slots with datetime, location and booking status, plus change detection (new bookings and cancellations) since the previous run for calendar sync.
Pricing
from $25.00 / 1,000 slot records
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Doctoralia Doctor Schedule Monitor
Keep a scheduling agent, CRM or calendar in sync with one doctor's Doctoralia appointment calendar. Point the actor at a single Doctoralia profile URL and every run reads that doctor's 30-minute slots across all of their active calendars, tells you which are booked and which are free, and detects what changed since the last run (new bookings and cancellations). Built to run on a short cron (for example every 30 minutes) so an automation agent always has the current state of the calendar.
HTTP-only and fast. No browser, no login to the doctor's Doctoralia account required.
Here is one real record the actor returns (a currently booked slot):
{"doctorName": "Dr. Diego Armando Huertas Castelli","doctorId": "75266","doctorUrl": "https://www.doctoralia.co/perfil/diego-armando-huertas-castelli","addressId": "85713","locationName": "Psi, Diego Armando Huertas Castelli. Psicología y Coaching.","city": "Bogotá","address": "Psi, Diego Armando Huertas Castelli. Psicología y Coaching.","onlineOnly": false,"specialty": "Psicólogo","slotStart": "2026-08-19T19:00:00-05:00","slotDate": "2026-08-19","slotTime": "19:00","status": "booked","changeType": "new_booking","bookingUrl": null,"observedAt": "2026-08-19T23:21:48.327Z"}
What you get
For every appointment slot in your date window, one record with the slot datetime (with timezone), whether it is booked or free, the location it belongs to, and how it changed since the previous run. Free slots include the public booking URL.
Input
| Field | Type | Description |
|---|---|---|
doctorUrl | string | Full Doctoralia profile URL of the doctor to monitor, for example https://www.doctoralia.co/perfil/diego-armando-huertas-castelli. Recommended. |
doctorSlug | string | Alternative to doctorUrl: the profile slug (for example diego-armando-huertas-castelli), combined with country to build the URL. |
country | enum | Country domain used only when building the URL from doctorSlug: co, mx, es, ar, cl, pe, br. Default co. |
daysAhead | integer | How many days of calendar to read from today (1 to 60). Default 7. |
output | enum | changes (only slots whose status changed since the last run, for a cron), booked (all currently booked slots), or all (full grid of booked and free). Default changes. |
maxSlots | integer | Safety cap on records emitted per run. Default 500. |
Output
| Field | Description |
|---|---|
doctorName | Doctor display name (public). |
doctorId | Doctoralia doctor id. |
doctorUrl | Profile URL monitored. |
addressId | Calendar / location id the slot belongs to. |
locationName | Clinic / location name. |
city | City. |
address | Address text. |
onlineOnly | true for an online-only calendar. |
specialty | Doctor specialty when available. |
slotStart | Slot start as returned, ISO 8601 with timezone (for example 2026-08-19T19:00:00-05:00). |
slotDate | Slot date YYYY-MM-DD. |
slotTime | Slot time HH:MM. |
status | booked or free. |
changeType | new_booking, cancellation, existing (first run only), or unchanged. |
bookingUrl | Public booking URL (present for free slots only). |
observedAt | When this run observed the calendar (ISO). |
How change detection works
The actor remembers the set of booked slots from the previous run for each doctor (stored in a persistent key-value store keyed by doctor id). On the next run it compares:
- a slot booked now but not before becomes
new_booking, - a slot that was booked before and is now free becomes
cancellation, - on the very first run there is no history, so every currently booked slot is emitted once as
existingto let you seed your calendar.
In output: "changes" mode an idle poll with no calendar movement returns zero records, so your cron only produces data (and cost) when something actually changed.
Use cases
- Schedule sync: keep a scheduling-automation agent, Google Calendar or CRM continuously in sync with a doctor's real Doctoralia bookings on a 30-minute cron.
- Double-booking prevention: know the moment a slot fills up so your own booking flow never offers a time that is already taken.
- Appointment monitoring: track new bookings and cancellations over the day for reminders, waitlist fills or staffing.
Recommended setup for a 30-minute sync
- Set
doctorUrlto your doctor's Doctoralia profile URL. - Set
outputtochangesanddaysAheadto7. - Schedule the actor to run every 30 minutes.
Each tick returns only new bookings and cancellations since the previous tick, which your agent applies to its calendar.
Billing
This actor uses pay per event:
| Event | Price | When |
|---|---|---|
apify-actor-start | $0.02 | Once per run, charged when the monitor starts and polls the calendar. Covers the poll and change computation even when there are no new bookings. |
result | $0.03 | Once per emitted slot record. |
In the default changes mode, a run where nothing changed emits zero records and costs only the one run-start event. Runs never charge the result event on failure, and free Apify accounts are capped at 10 billable records per run.
Honest note on patient data
This actor reads only what Doctoralia publishes on the public profile and calendar: the slot datetime, whether it is booked or free, and the location. The patient name, phone and WhatsApp are not included, because that information is private and only exists inside the doctor's own logged-in Doctoralia account. It is not part of the public data and this actor does not fabricate it. The actor tells you a slot is taken and when; it does not tell you who booked it.
