Randevular API

Randevular modülünün tüm işlemleri (26) ve veri modelleri (6): adresler, izinler, girdiler, ön koşullar, olaylar ve örnekler.

Çalışma saatlerinize, aralara, izinlere ve kapasiteye uyan online randevu.

Modül kodu appointments · 26 işlem · 6 veri modeli · 20 olay. Bir anahtar ya da token, arkasındaki kişinin bu modülde yapabildiğinden fazlasını asla yapamaz; satır düzeyindeki güvenlik uygulamadakiyle birebir aynıdır. Yetki kapsamları: appointments (hepsi), appointments:read (yalnız okuma) ya da appointments:<yetenek>.

Kaynaklar

KaynakTabloListeleme ve okumaPOSTPATCHDELETE
appointment_guest_servicesappointment_guest_service/api/v1/appointment_guest_services
appointment_guestsappointment_guest/api/v1/appointment_guests
appointment_import_jobsappointment_import_job/api/v1/appointment_import_jobs
appointment_reminder_opt_outsappointment_reminder_opt_out/api/v1/appointment_reminder_opt_outs
appointmentsappointment/api/v1/appointmentsappointments.book
banned_customersbanned_customer/api/v1/banned_customers

Listeler limit (en çok 200), cursor, order (ör. -created_at), fields ve q alır; diğer her sorgu parametresi bir sütun süzgecidir: ?status=paid, ?total[gte]=100, ?id[in]=a,b, ?x=null.

İşlemler

İşlemGereken izinNe yapar
appointments.add_guestappointments:writeMisafir ekle
appointments.add_guest_serviceappointments:writeHizmet ekle
appointments.assign_memberappointments:writeKimin yapacağını değiştir
appointments.ban_customerappointments:manageRandevudan yasakla
appointments.bookappointments:writeRandevu oluştur
appointments.book_groupappointments:writeGrup randevusu oluştur
appointments.book_onlineappointments:writeOnline randevu al
appointments.cancelappointments:writeRandevuyu iptal et
appointments.cancel_by_tokenappointments:writeBağlantıyla iptal et
appointments.cancel_my_bookingappointments:writeRandevumu iptal et
appointments.change_guest_customerappointments:writeMisafiri değiştir
appointments.completeappointments:writeTamamlandı işaretle
appointments.confirmappointments:approveRandevuyu onayla
appointments.exportappointments:exportRandevuları dışa aktar
appointments.importappointments:importRandevuları içe aktar
appointments.lift_banappointments:manageYasağı kaldır
appointments.mark_deposit_statusappointments:handleRandevu kaporasını güncelle
appointments.no_showappointments:writeGelmedi işaretle
appointments.raise_reminderappointments:handleRandevu hatırlatması oluştur
appointments.remove_guestappointments:writeMisafiri çıkar
appointments.remove_serviceappointments:writeHizmeti kaldır
appointments.rescheduleappointments:writeRandevuyu taşı
appointments.reschedule_by_tokenappointments:writeBağlantıyla taşı
appointments.reschedule_my_bookingappointments:writeRandevumu taşı
appointments.set_reminder_opt_outappointments:writeKişi için randevu hatırlatmaları
appointments.update_detailsappointments:writeNotu düzenle

appointments.add_guest

Misafir ekle — Var olan bir randevuya bir kişi daha ekler.

Gereken izin appointments:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/appointments/{id}/actions/add_guest
API anahtarı ya da OAuth token · appointments:write
  • Asıl adres: POST /api/v1/actions/appointments.add_guest

Girdi

AlanTürZorunluAçıklama
appointmentIduuidevetDoldurulduğu yer: adresteki {id} · Randevu · kimliği: appointment
customerIduuidevetMüşteri · kimliği: customer
itemVariantIduuidİlk hizmeti · kimliği: item_variant
memberUserIduuidEkip üyesi · Müsait olan kişiye atanması için boş bırakın.
expectedPriceAmountnumber (money)Gösterilen fiyat · Ekranda gösterilen fiyat. Güncel fiyat farklıysa işlem reddedilir; böylece kişi yeni fiyatı onaylayabilir. · en az 0

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundRandevu bulunmalı.
already_cancelledRandevu iptal edilmiş olmamalı.
already_finishedRandevu bitmiş olmamalı.
already_a_guestKişi zaten randevuda olmamalı.
customer_not_foundMüşteri bu çalışma alanında bulunmalı.
customer_bannedMüşteri yasaklı olmamalı.
service_not_foundHizmet bulunmalı.
service_inactiveHizmet aktif ve randevuya açık olmalı.
service_has_no_durationPaket olmayan bir hizmetin süresi olmalı.
package_emptyPaket bir şey içermeli.
service_not_offered_that_dayHizmet o hafta gününde sunuluyor olmalı.
provider_cannot_performEkip üyesi bu hizmeti veriyor olmalı.
closed_that_dayTarih bir özel günle kapatılmış olmamalı.
outside_working_hoursUzayan randevu hâlâ çalışma saatlerine sığmalı.
provider_on_leaveGereken kişilerden hiçbiri izinde olmamalı.
slot_takenUzatılan saat boş olmalı.
class_fullDerste hâlâ yer olmalı.
no_provider_availableKimse seçilmediyse müsait biri olmalı.
price_changedFiyat hâlâ kişiye gösterilen fiyat olmalı.

Yayımladığı olaylar: appointments.guest_added

Neye yazar: appointment_guest (insert) — Adds the guest; appointment_guest_service (insert) — Adds their first service line; appointment (update) — Re-totals duration, price and end time

curl -X POST https://app.getera.io/api/v1/appointments/APPOINTMENT_ID/actions/add_guest \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"customerId":"CUSTOMER_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "appointments.guest_added"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.appointments.addGuest("APPOINTMENT_ID", {
  customerId: "CUSTOMER_ID"
})
era appointments add_guest APPOINTMENT_ID \
  --customer-id "CUSTOMER_ID"
tools/call
{
  "name": "era__appointments__add_guest",
  "arguments": {
    "appointmentId": "APPOINTMENT_ID",
    "customerId": "CUSTOMER_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde appointments:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, already_cancelled, already_finished, already_a_guest, customer_not_found, customer_banned, service_not_found, service_inactive, service_has_no_duration, package_empty, service_not_offered_that_day, provider_cannot_perform, closed_that_day, outside_working_hours, provider_on_leave, slot_taken, class_full, no_provider_available, price_changed · 429 çok sık istek

appointments.add_guest_service

Hizmet ekle — Bir misafire bir hizmet daha ekler ve uzayan randevuyu yeniden kontrol eder.

Gereken izin appointments:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/appointment_guest_services/actions/add_guest_service
API anahtarı ya da OAuth token · appointments:write
  • Asıl adres: POST /api/v1/actions/appointments.add_guest_service

Girdi

AlanTürZorunluAçıklama
appointmentGuestIduuidevetMisafir · kimliği: appointment_guest
itemVariantIduuidevetHizmet · kimliği: item_variant
memberUserIduuidEkip üyesi · Müsait olan kişiye atanması için boş bırakın.
expectedPriceAmountnumber (money)Gösterilen fiyat · Ekranda gösterilen fiyat. Güncel fiyat farklıysa işlem reddedilir; böylece kişi yeni fiyatı onaylayabilir. · en az 0

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
guest_not_foundMisafir bir randevuda olmalı.
price_changedFiyat hâlâ kişiye gösterilen fiyat olmalı.
already_cancelledRandevu iptal edilmiş olmamalı.
already_finishedRandevu bitmiş olmamalı.
service_inactiveHizmet aktif ve randevuya açık olmalı.
service_has_no_durationPaket olmayan bir hizmetin süresi olmalı.
package_emptyPaket bir şey içermeli.
service_not_offered_that_dayHizmet o hafta gününde sunuluyor olmalı.
provider_cannot_performEkip üyesi bu hizmeti veriyor olmalı.
closed_that_dayTarih bir özel günle kapatılmış olmamalı.
outside_working_hoursUzayan randevu hâlâ çalışma saatlerine sığmalı.
provider_on_leaveGereken kişilerden hiçbiri izinde olmamalı.
slot_takenUzatılan saat boş olmalı.
class_fullDerste hâlâ yer olmalı.
no_provider_availableKimse seçilmediyse müsait biri olmalı.

Yayımladığı olaylar: appointments.service_added

Neye yazar: appointment_guest_service (insert) — Adds the service line; appointment (update) — Re-totals duration, price and end time

curl -X POST https://app.getera.io/api/v1/appointment_guest_services/actions/add_guest_service \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"appointmentGuestId":"APPOINTMENT_GUEST_ID","itemVariantId":"ITEM_VARIANT_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "appointments.service_added"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.appointmentGuestServices.addGuestService({
  appointmentGuestId: "APPOINTMENT_GUEST_ID",
  itemVariantId: "ITEM_VARIANT_ID"
})
era appointment_guest_services add_guest_service \
  --appointment-guest-id "APPOINTMENT_GUEST_ID" \
  --item-variant-id "ITEM_VARIANT_ID"
tools/call
{
  "name": "era__appointments__add_guest_service",
  "arguments": {
    "appointmentGuestId": "APPOINTMENT_GUEST_ID",
    "itemVariantId": "ITEM_VARIANT_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde appointments:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 guest_not_found, price_changed, already_cancelled, already_finished, service_inactive, service_has_no_duration, package_empty, service_not_offered_that_day, provider_cannot_perform, closed_that_day, outside_working_hours, provider_on_leave, slot_taken, class_full, no_provider_available · 429 çok sık istek

appointments.assign_member

Kimin yapacağını değiştir — Bir hizmet satırını başka bir ekip üyesine taşır ya da atanmamış bırakır.

Gereken izin appointments:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/appointment_guest_services/{id}/actions/assign_member
API anahtarı ya da OAuth token · appointments:write
  • Asıl adres: POST /api/v1/actions/appointments.assign_member

Girdi

AlanTürZorunluAçıklama
lineIduuidevetDoldurulduğu yer: adresteki {id} · Hizmet satırı · kimliği: appointment_guest_service
memberUserIduuidEkip üyesi · Atamayı kaldırmak için boş bırakın.

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
line_not_foundHizmet satırı bulunmalı.
already_cancelledRandevu iptal edilmiş olmamalı.
already_finishedRandevu bitmiş olmamalı.
provider_cannot_performEkip üyesi bu hizmeti veriyor olmalı.
closed_that_dayO gün onlar için kapalı olmamalı.
outside_working_hoursRandevu boyunca çalışıyor olmalılar.
provider_on_leaveİzinde olmamalılar.
slot_takenTüm randevu boyunca müsait olmalılar.

Yayımladığı olaylar: appointments.member_assigned

Neye yazar: appointment_guest_service (update) — Sets the line’s team member

curl -X POST https://app.getera.io/api/v1/appointment_guest_services/APPOINTMENT_GUEST_SERVICE_ID/actions/assign_member \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"memberUserId":"MEMBER_USER_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "appointments.member_assigned"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.appointmentGuestServices.assignMember("APPOINTMENT_GUEST_SERVICE_ID", {
  memberUserId: "MEMBER_USER_ID"
})
era appointment_guest_services assign_member APPOINTMENT_GUEST_SERVICE_ID \
  --member-user-id "MEMBER_USER_ID"
tools/call
{
  "name": "era__appointments__assign_member",
  "arguments": {
    "lineId": "APPOINTMENT_GUEST_SERVICE_ID",
    "memberUserId": "MEMBER_USER_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde appointments:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 line_not_found, already_cancelled, already_finished, provider_cannot_perform, closed_that_day, outside_working_hours, provider_on_leave, slot_taken · 429 çok sık istek

appointments.ban_customer

Randevudan yasakla — Bir e-posta adresinin veya telefon numarasının yeni randevu almasını engeller.

Gereken izin appointments:manage · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır) · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/banned_customers/actions/ban_customer
API anahtarı ya da OAuth token · appointments:manage
  • Asıl adres: POST /api/v1/actions/appointments.ban_customer

Girdi

AlanTürZorunluAçıklama
emailemailE-posta · en çok 255
phonephoneTelefon · en çok 32
reasonstring (enum)Neden · İzin verilen değerler: fake_appointment, no_show, inappropriate, payment_issue, other
notesstringNotlar · en çok 2000

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
no_identityBir e-posta adresi veya telefon numarası gerekli.

Yayımladığı olaylar: appointments.customer_banned

Neye yazar: banned_customer (insert) — Records the ban

curl -X POST https://app.getera.io/api/v1/banned_customers/actions/ban_customer \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"email":"[email protected]"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "appointments.customer_banned"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.bannedCustomers.banCustomer({
  email: "[email protected]"
})
era banned_customers ban_customer \
  --email "[email protected]"
tools/call
{
  "name": "era__appointments__ban_customer",
  "arguments": {
    "email": "[email protected]"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde appointments:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 no_identity · 429 çok sık istek

appointments.book

Randevu oluştur — Her kural izin verdiğinde ilk misafiri ve hizmetiyle bir randevu açar.

Gereken izin appointments:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/appointments/actions/book
API anahtarı ya da OAuth token · appointments:write
  • REST kısayolu: POST /api/v1/appointments
  • Asıl adres: POST /api/v1/actions/appointments.book

Girdi

AlanTürZorunluAçıklama
customerIduuidevetMüşteri · kimliği: customer
itemVariantIduuidevetHizmet · kimliği: item_variant
appointmentDatedateevetTarih
startTimestringevetBaşlangıç saati · en çok 8
memberUserIduuidEkip üyesi · Müsait olan kişiye atanması için boş bırakın.
notesstringNot · en çok 2000

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
service_inactiveHizmet aktif ve randevuya açık olmalı.
service_has_no_durationPaket olmayan bir hizmetin süresi olmalı.
package_emptyPaket bir şey içermeli.
inside_cutoffSaat, son randevu alma süresine uymalı.
outside_windowSaat, randevu alınabilecek zaman aralığında olmalı.
service_not_offered_that_dayHizmet o hafta gününde sunuluyor olmalı.
provider_cannot_performEkip üyesi bu hizmeti veriyor olmalı.
closed_that_dayTarih bir özel günle kapatılmış olmamalı.
outside_working_hoursSaat ve ara süresi çalışma saatleri içinde olmalı.
provider_on_leaveGereken kişilerden hiçbiri izinde olmamalı.
slot_takenSaat ve ara süresi boş olmalı.
class_fullDerste hâlâ yer olmalı.
no_provider_availableKimse seçilmediyse müsait biri olmalı.
customer_not_foundMüşteri bu çalışma alanında bulunmalı.
customer_bannedMüşteri yasaklı olmamalı.
no_workspaceSaati için çalışma alanı okunabilir olmalı.

Yayımladığı olaylar: appointments.booked

Neye yazar: appointment (insert) — Creates the appointment; appointment_guest (insert) — Adds the first guest; appointment_guest_service (insert) — Adds their first service

curl -X POST https://app.getera.io/api/v1/appointments/actions/book \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"customerId":"CUSTOMER_ID","itemVariantId":"ITEM_VARIANT_ID","appointmentDate":"2026-11-02","startTime":"Start time"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "appointments.booked"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.appointments.create({
  customerId: "CUSTOMER_ID",
  itemVariantId: "ITEM_VARIANT_ID",
  appointmentDate: "2026-11-02",
  startTime: "Start time"
})
era appointments create \
  --customer-id "CUSTOMER_ID" \
  --item-variant-id "ITEM_VARIANT_ID" \
  --appointment-date "2026-11-02" \
  --start-time "Start time"
tools/call
{
  "name": "era__appointments__book",
  "arguments": {
    "customerId": "CUSTOMER_ID",
    "itemVariantId": "ITEM_VARIANT_ID",
    "appointmentDate": "2026-11-02",
    "startTime": "Start time"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde appointments:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 service_inactive, service_has_no_duration, package_empty, inside_cutoff, outside_window, service_not_offered_that_day, provider_cannot_perform, closed_that_day, outside_working_hours, provider_on_leave, slot_taken, class_full, no_provider_available, customer_not_found, customer_banned, no_workspace · 429 çok sık istek

appointments.book_group

Grup randevusu oluştur — Tüm randevuyu — her misafir, her hizmet, her personel — tek seferde yazar.

Gereken izin appointments:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/appointments/actions/book_group
API anahtarı ya da OAuth token · appointments:write
  • Asıl adres: POST /api/v1/actions/appointments.book_group

Girdi

AlanTürZorunluAçıklama
guestsobject / arrayevetMisafirler ve hizmetleri · [{ customerId, lines: [{ itemVariantId, memberUserId? }] }]
appointmentDatedateevetTarih
startTimestringevetBaşlangıç saati · en çok 8
notesstringNot · en çok 2000
addressstringAdres · Yalnızca evde hizmet — ziyaretin yapılacağı yer. · en çok 500

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
invalid_guestsMisafir listesi her biri için bir müşteri ve en az bir hizmet belirtmeli.
service_not_foundHer hizmet bulunmalı.
service_inactiveHer hizmet aktif ve randevuya açık olmalı.
service_has_no_durationPaket olmayan bir hizmetin süresi olmalı.
package_emptyPaket bir şey içermeli.
inside_cutoffSaat, son randevu alma süresine uymalı.
outside_windowSaat, randevu alınabilecek zaman aralığında olmalı.
service_not_offered_that_dayHer hizmet o hafta gününde sunuluyor olmalı.
provider_cannot_performBelirtilen her ekip üyesi kendisine verilen hizmeti veriyor olmalı.
closed_that_dayTarih bir özel günle kapatılmış olmamalı.
outside_working_hoursRandevunun tamamı, ara süresiyle birlikte, çalışma saatleri içinde olmalı.
provider_on_leaveGereken kimse izinde olamaz.
slot_takenBelirtilen her üye tüm randevu boyunca müsait olmalı.
class_fullDerste hâlâ yer olmalı.
no_provider_availableKimsenin seçilmediği her hizmet için müsait biri olmalı.
already_a_guestAynı kişi iki kez listelenmemeli.
customer_not_foundHer misafir bu çalışma alanında bulunmalı.
customer_bannedHiçbir misafir yasaklı olamaz.
no_workspaceSaati için çalışma alanı okunabilir olmalı.

Yayımladığı olaylar: appointments.booked

Neye yazar: appointment (insert) — Creates the appointment; appointment_guest (insert) — Adds every guest; appointment_guest_service (insert) — Adds every service line

curl -X POST https://app.getera.io/api/v1/appointments/actions/book_group \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"guests":{},"appointmentDate":"2026-11-02","startTime":"Start time"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "appointments.booked"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.appointments.bookGroup({
  guests: {},
  appointmentDate: "2026-11-02",
  startTime: "Start time"
})
era appointments book_group --data '{"guests":{},"appointmentDate":"2026-11-02","startTime":"Start time"}'
tools/call
{
  "name": "era__appointments__book_group",
  "arguments": {
    "guests": {},
    "appointmentDate": "2026-11-02",
    "startTime": "Start time"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde appointments:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 invalid_guests, service_not_found, service_inactive, service_has_no_duration, package_empty, inside_cutoff, outside_window, service_not_offered_that_day, provider_cannot_perform, closed_that_day, outside_working_hours, provider_on_leave, slot_taken, class_full, no_provider_available, already_a_guest, customer_not_found, customer_banned, no_workspace · 429 çok sık istek

appointments.book_online

Online randevu al — Ziyaretçi, ekibin randevularına uygulanan tüm kurallarla siteden boş bir saate bir veya daha fazla hizmet için randevu alır ve randevusunu yönetmesi için bir bağlantı alır.

Gereken izin appointments:write · veriyi değiştirir · Yayındaki bir siteden de çağrılabilir (visitor)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/appointments/actions/book_online
API anahtarı ya da OAuth token · appointments:write
  • Asıl adres: POST /api/v1/actions/appointments.book_online

Girdi

AlanTürZorunluAçıklama
itemVariantIdsobject / arrayevetHizmetler
appointmentDatedateevetTarih
startTimestringevetBaşlangıç saati · en çok 8
memberUserIduuidEkip üyesi · Müsait olan herkes için boş bırakın.
notesstringNot · en çok 1000
addressstringAdres · Evde hizmet ziyaretinin yapılacağı yer. · en çok 500

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
address_requiredEvde hizmet randevusu, ziyaret edilecek adresi gerektirir.
guest_details_requiredMisafirin randevu almadan önce bilgilerini girmesi gerekir.
service_not_foundEn az bir hizmet seçilmeli.
too_many_servicesBir online randevuda en fazla beş hizmet seçilebilir.
slot_takenBu saat artık dolu; başka bir saat seçin.

Yayımladığı olaylar: appointments.booked, appointments.service_added

Neye yazar: appointment (insert) — Creates the appointment with its manage link; appointment_guest (insert) — The person booking; appointment_guest_service (insert) — One line per service

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde appointments:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 address_required, guest_details_required, service_not_found, too_many_services, slot_taken · 429 çok sık istek

appointments.cancel

Randevuyu iptal et — Saati boşaltır ve sistemin geri kalanına boş olduğunu bildirir.

Gereken izin appointments:write · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/appointments/{id}/actions/cancel
API anahtarı ya da OAuth token · appointments:write
  • Asıl adres: POST /api/v1/actions/appointments.cancel

Girdi

AlanTürZorunluAçıklama
appointmentIduuidevetDoldurulduğu yer: adresteki {id} · Randevu · kimliği: appointment
reasonstringNeden · Çalışma alanının iptal nedenlerinden biri. · en çok 64

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
already_cancelledZaten iptal edilmiş olmamalı.
already_completedTamamlanmış bir randevu iptal edilemez.
unknown_reasonNeden, çalışma alanının kullandığı nedenlerden biri olmalı.

Yayımladığı olaylar: appointments.cancelled

Neye yazar: appointment (update) — Marks it cancelled and records why

curl -X POST https://app.getera.io/api/v1/appointments/APPOINTMENT_ID/actions/cancel \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"reason":"Reason"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "appointments.cancelled"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.appointments.cancel("APPOINTMENT_ID", {
  reason: "Reason"
})
era appointments cancel APPOINTMENT_ID \
  --reason "Reason"
tools/call
{
  "name": "era__appointments__cancel",
  "arguments": {
    "appointmentId": "APPOINTMENT_ID",
    "reason": "Reason"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde appointments:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 already_cancelled, already_completed, unknown_reason · 429 çok sık istek

appointments.cancel_by_token

Bağlantıyla iptal et — Randevunun yönetim bağlantısına sahip olan kişi, iptal süresi dolmadan randevuyu iptal eder; saat başkaları için boşalır.

Gereken izin appointments:write · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır · Yayındaki bir siteden de çağrılabilir (visitor)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/appointments/actions/cancel_by_token
API anahtarı ya da OAuth token · appointments:write
  • Asıl adres: POST /api/v1/actions/appointments.cancel_by_token

Girdi

AlanTürZorunluAçıklama
tokenstringevetBağlantı · en çok 100
reasonstringNeden · en çok 80

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
booking_link_invalidBu bağlantı bu işletmenin bir randevusuna ait değil.
booking_startedRandevu başladıktan sonra yapılamaz.
inside_cutoffSon değişiklik süresi geçti; lütfen işletmeyi arayın.
already_cancelledZaten iptal edilmiş olmamalı.

Yayımladığı olaylar: appointments.cancelled

Neye yazar: appointment (update) — Marks it cancelled

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde appointments:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 booking_link_invalid, booking_started, inside_cutoff, already_cancelled · 429 çok sık istek

appointments.cancel_my_booking

Randevumu iptal et — Giriş yapmış müşteri, yaklaşan randevularından birini site hesabından iptal eder; saat boşalır.

Gereken izin appointments:write · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır · Yayındaki bir siteden de çağrılabilir (customer)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/appointments/{id}/actions/cancel_my_booking
API anahtarı ya da OAuth token · appointments:write
  • Asıl adres: POST /api/v1/actions/appointments.cancel_my_booking

Girdi

AlanTürZorunluAçıklama
appointmentIduuidevetDoldurulduğu yer: adresteki {id} · Rezervasyon · kimliği: appointment

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_your_bookingYalnızca müşterinin katılımcısı olduğu bir randevu için yapılabilir.
booking_startedRandevu başladıktan sonra yapılamaz.
already_cancelledZaten iptal edilmiş olmamalı.

Yayımladığı olaylar: appointments.cancelled

Neye yazar: appointment (update) — Marks it cancelled

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde appointments:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_your_booking, booking_started, already_cancelled · 429 çok sık istek

appointments.change_guest_customer

Misafiri değiştir — Bir misafirin yerine başka bir kişiyi koyar; hizmetleri, personeli ve fiyatları korur.

Gereken izin appointments:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/appointment_guests/{id}/actions/change_guest_customer
API anahtarı ya da OAuth token · appointments:write
  • Asıl adres: POST /api/v1/actions/appointments.change_guest_customer

Girdi

AlanTürZorunluAçıklama
appointmentGuestIduuidevetDoldurulduğu yer: adresteki {id} · Misafir · kimliği: appointment_guest
customerIduuidevetMüşteri · kimliği: customer

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
guest_not_foundMisafir bir randevuda olmalı.
already_cancelledRandevu iptal edilmiş olmamalı.
already_finishedRandevu bitmiş olmamalı.
same_customerYeni kişi farklı bir kişi olmalı.
customer_not_foundYeni kişi bulunmalı.
customer_bannedYeni kişi yasaklı olmamalı.
already_a_guestYeni kişi zaten randevuda olmamalı.

Yayımladığı olaylar: appointments.guest_customer_changed

Neye yazar: appointment_guest (update) — Points the guest at the new customer

curl -X POST https://app.getera.io/api/v1/appointment_guests/APPOINTMENT_GUEST_ID/actions/change_guest_customer \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"customerId":"CUSTOMER_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "appointments.guest_customer_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.appointmentGuests.changeGuestCustomer("APPOINTMENT_GUEST_ID", {
  customerId: "CUSTOMER_ID"
})
era appointment_guests change_guest_customer APPOINTMENT_GUEST_ID \
  --customer-id "CUSTOMER_ID"
tools/call
{
  "name": "era__appointments__change_guest_customer",
  "arguments": {
    "appointmentGuestId": "APPOINTMENT_GUEST_ID",
    "customerId": "CUSTOMER_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde appointments:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 guest_not_found, already_cancelled, already_finished, same_customer, customer_not_found, customer_banned, already_a_guest · 429 çok sık istek

appointments.complete

Tamamlandı işaretle — Randevunun gerçekleştiğini kaydeder.

Gereken izin appointments:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/appointments/{id}/actions/complete
API anahtarı ya da OAuth token · appointments:write
  • Asıl adres: POST /api/v1/actions/appointments.complete

Girdi

AlanTürZorunluAçıklama
appointmentIduuidevetDoldurulduğu yer: adresteki {id} · Randevu · kimliği: appointment

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
already_cancelledİptal edilmiş bir randevu tamamlanamaz.
already_finishedZaten bitmiş olmamalı.
not_yet_startedBaşlamış olmalı.

Yayımladığı olaylar: appointments.completed

Neye yazar: appointment (update) — Moves it to completed

curl -X POST https://app.getera.io/api/v1/appointments/APPOINTMENT_ID/actions/complete \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "appointments.completed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.appointments.complete("APPOINTMENT_ID")
era appointments complete APPOINTMENT_ID
tools/call
{
  "name": "era__appointments__complete",
  "arguments": {
    "appointmentId": "APPOINTMENT_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde appointments:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 already_cancelled, already_finished, not_yet_started · 429 çok sık istek

appointments.confirm

Randevuyu onayla — Bekleyen bir randevuyu kabul eder.

Gereken izin appointments:approve · veriyi değiştirir

POSThttps://app.getera.io/api/v1/appointments/{id}/actions/confirm
API anahtarı ya da OAuth token · appointments:approve
  • Asıl adres: POST /api/v1/actions/appointments.confirm

Girdi

AlanTürZorunluAçıklama
appointmentIduuidevetDoldurulduğu yer: adresteki {id} · Randevu · kimliği: appointment

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_pendingYalnızca bekleyen bir randevu onaylanabilir.

Yayımladığı olaylar: appointments.confirmed

Neye yazar: appointment (update) — Moves it to confirmed

curl -X POST https://app.getera.io/api/v1/appointments/APPOINTMENT_ID/actions/confirm \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "appointments.confirmed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.appointments.confirm("APPOINTMENT_ID")
era appointments confirm APPOINTMENT_ID
tools/call
{
  "name": "era__appointments__confirm",
  "arguments": {
    "appointmentId": "APPOINTMENT_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde appointments:approve izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_pending · 429 çok sık istek

appointments.export

Randevuları dışa aktar — Bir dönemdeki tüm randevular, her hizmet için bir satır; liste bunları CSV veya Excel dosyasına dönüştürür.

Gereken izin appointments:export · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır)

POSThttps://app.getera.io/api/v1/actions/appointments.export
API anahtarı ya da OAuth token · appointments:export

Girdi

AlanTürZorunluAçıklama
fromdateevetNereden
todateevetBitiş
statusstringDurum · en çok 20

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
invalid_rangeDönemin bitişi başlangıcından önce olamaz.

Yayımladığı olaylar: appointments.exported

curl -X POST https://app.getera.io/api/v1/actions/appointments.export \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"from":"2026-11-02","to":"2026-11-02"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "appointments.exported"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("appointments.export", {
  from: "2026-11-02",
  to: "2026-11-02"
})
era run appointments.export \
  --from "2026-11-02" \
  --to "2026-11-02"
tools/call
{
  "name": "era__appointments__export",
  "arguments": {
    "from": "2026-11-02",
    "to": "2026-11-02"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde appointments:export izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 invalid_range · 429 çok sık istek

appointments.import

Randevuları içe aktar — Eşleştirilmiş bir dosyayı sıraya alır, geçerli her satır için randevu oluşturur ve sonucu özet ekranı için saklar.

Gereken izin appointments:import · veriyi değiştirir

POSThttps://app.getera.io/api/v1/appointment_import_jobs/actions/import
API anahtarı ya da OAuth token · appointments:import
  • Asıl adres: POST /api/v1/actions/appointments.import

Girdi

AlanTürZorunluAçıklama
fileNamestringevetDosya · en çok 255
mappingobject / arrayevetSütun eşleştirmesi
rowsobject / arrayevetHazırlanan satırlar

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
invalid_importEşleştirilen dosyada en fazla 2.000 kullanılabilir satır olmalı.

Yayımladığı olaylar: appointments.import_completed

Neye yazar: appointment_import_job (insert) — Records and tracks the import; appointment_import_job (update) — Stores progress and the result; appointment (insert) — Books valid rows; appointment_guest (insert) — Adds each matched customer; appointment_guest_service (insert) — Adds the matched service and staff member

curl -X POST https://app.getera.io/api/v1/appointment_import_jobs/actions/import \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"fileName":"File","mapping":{},"rows":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "appointments.import_completed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.appointmentImportJobs.import({
  fileName: "File",
  mapping: {},
  rows: {}
})
era appointment_import_jobs import --data '{"fileName":"File","mapping":{},"rows":{}}'
tools/call
{
  "name": "era__appointments__import",
  "arguments": {
    "fileName": "File",
    "mapping": {},
    "rows": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde appointments:import izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 invalid_import · 429 çok sık istek

appointments.lift_ban

Yasağı kaldır — O kişinin yeniden randevu almasına izin verir.

Gereken izin appointments:manage · siler ya da geri alınamaz

POSThttps://app.getera.io/api/v1/banned_customers/{id}/actions/lift_ban
API anahtarı ya da OAuth token · appointments:manage
  • Asıl adres: POST /api/v1/actions/appointments.lift_ban

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Yasakla · kimliği: banned_customer

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundYasak bulunmalı.

Yayımladığı olaylar: appointments.ban_lifted

Neye yazar: banned_customer (delete) — Removes the ban

curl -X POST https://app.getera.io/api/v1/banned_customers/BANNED_CUSTOMER_ID/actions/lift_ban \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "appointments.ban_lifted"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.bannedCustomers.liftBan("BANNED_CUSTOMER_ID")
era banned_customers lift_ban BANNED_CUSTOMER_ID
tools/call
{
  "name": "era__appointments__lift_ban",
  "arguments": {
    "id": "BANNED_CUSTOMER_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde appointments:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found · 429 çok sık istek

appointments.mark_deposit_status

Randevu kaporasını güncelle — Ortak ödeme akışının randevu tarafındaki sonucunu kaydeder.

Gereken izin appointments:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/appointments/{id}/actions/mark_deposit_status
API anahtarı ya da OAuth token · appointments:handle
  • Asıl adres: POST /api/v1/actions/appointments.mark_deposit_status

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Randevu · kimliği: appointment
statusstring (enum)evetKapora durumu · İzin verilen değerler: pending, paid, failed, refunded

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
appointment_not_foundRandevu bulunmalı.
deposit_not_requiredBu randevu için kapora istenmiyor.

Yayımladığı olaylar: appointments.deposit_changed

Neye yazar: appointment (update) — Updates the frozen deposit status

curl -X POST https://app.getera.io/api/v1/appointments/APPOINTMENT_ID/actions/mark_deposit_status \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"status":"pending"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "appointments.deposit_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.appointments.markDepositStatus("APPOINTMENT_ID", {
  status: "pending"
})
era appointments mark_deposit_status APPOINTMENT_ID \
  --status "pending"
tools/call
{
  "name": "era__appointments__mark_deposit_status",
  "arguments": {
    "id": "APPOINTMENT_ID",
    "status": "pending"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde appointments:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 appointment_not_found, deposit_not_required · 429 çok sık istek

appointments.no_show

Gelmedi işaretle — Müşterinin gelmediğini kaydeder.

Gereken izin appointments:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/appointments/{id}/actions/no_show
API anahtarı ya da OAuth token · appointments:write
  • Asıl adres: POST /api/v1/actions/appointments.no_show

Girdi

AlanTürZorunluAçıklama
appointmentIduuidevetDoldurulduğu yer: adresteki {id} · Randevu · kimliği: appointment

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
already_cancelledİptal edilmiş bir randevu “gelmedi” olarak işaretlenemez.
already_finishedZaten bitmiş olmamalı.
not_yet_startedBaşlamış olmalı.

Yayımladığı olaylar: appointments.no_show

Neye yazar: appointment (update) — Moves it to no_show

curl -X POST https://app.getera.io/api/v1/appointments/APPOINTMENT_ID/actions/no_show \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "appointments.no_show"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.appointments.noShow("APPOINTMENT_ID")
era appointments no_show APPOINTMENT_ID
tools/call
{
  "name": "era__appointments__no_show",
  "arguments": {
    "appointmentId": "APPOINTMENT_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde appointments:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 already_cancelled, already_finished, not_yet_started · 429 çok sık istek

appointments.raise_reminder

Randevu hatırlatması oluştur — Randevuyu hatırlatma zamanı gelmiş olarak işaretler ve bildirim kurallarına haber verir. Hatırlatma işi çalıştırır.

Gereken izin appointments:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/appointments/{id}/actions/raise_reminder
API anahtarı ya da OAuth token · appointments:handle
  • Asıl adres: POST /api/v1/actions/appointments.raise_reminder

Girdi

AlanTürZorunluAçıklama
appointmentIduuidevetDoldurulduğu yer: adresteki {id} · Randevu · kimliği: appointment

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
reminders_offHatırlatmalar açık olmalı.
not_foundRandevu bulunmalı.
not_upcomingBeklemede veya onaylı olmalı ve henüz gerçekleşmemiş olmalı.
not_yet_dueHatırlatma süresi içinde olmalı.
already_remindedHer randevu saati için yalnızca bir kez hatırlatma gönderilir.
opted_outEn az bir misafir hatırlatmaları kabul etmeli.
no_workspaceSaati için çalışma alanı okunabilir olmalı.

Yayımladığı olaylar: appointments.reminder_due

Neye yazar: appointment (update) — Stamps reminder_due_at

curl -X POST https://app.getera.io/api/v1/appointments/APPOINTMENT_ID/actions/raise_reminder \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "appointments.reminder_due"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.appointments.raiseReminder("APPOINTMENT_ID")
era appointments raise_reminder APPOINTMENT_ID
tools/call
{
  "name": "era__appointments__raise_reminder",
  "arguments": {
    "appointmentId": "APPOINTMENT_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde appointments:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 reminders_off, not_found, not_upcoming, not_yet_due, already_reminded, opted_out, no_workspace · 429 çok sık istek

appointments.remove_guest

Misafiri çıkar — Bir kişiyi randevudan, ayırttığı her şeyle birlikte çıkarır.

Gereken izin appointments:write · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/appointment_guests/{id}/actions/remove_guest
API anahtarı ya da OAuth token · appointments:write
  • Asıl adres: POST /api/v1/actions/appointments.remove_guest

Girdi

AlanTürZorunluAçıklama
appointmentGuestIduuidevetDoldurulduğu yer: adresteki {id} · Misafir · kimliği: appointment_guest

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
guest_not_foundMisafir bir randevuda olmalı.
already_cancelledRandevu iptal edilmiş olmamalı.
already_finishedRandevu bitmiş olmamalı.
last_guestSon misafir çıkarılamaz — bunun yerine iptal edin.

Yayımladığı olaylar: appointments.guest_removed

Neye yazar: appointment_guest (delete) — Removes the guest and their lines; appointment (update) — Re-totals duration, price and end time

curl -X POST https://app.getera.io/api/v1/appointment_guests/APPOINTMENT_GUEST_ID/actions/remove_guest \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "appointments.guest_removed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.appointmentGuests.removeGuest("APPOINTMENT_GUEST_ID")
era appointment_guests remove_guest APPOINTMENT_GUEST_ID
tools/call
{
  "name": "era__appointments__remove_guest",
  "arguments": {
    "appointmentGuestId": "APPOINTMENT_GUEST_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde appointments:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 guest_not_found, already_cancelled, already_finished, last_guest · 429 çok sık istek

appointments.remove_service

Hizmeti kaldır — Bir hizmet satırını bırakır ve randevuyu buna göre kısaltır.

Gereken izin appointments:write · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/appointment_guest_services/{id}/actions/remove_service
API anahtarı ya da OAuth token · appointments:write
  • Asıl adres: POST /api/v1/actions/appointments.remove_service

Girdi

AlanTürZorunluAçıklama
lineIduuidevetDoldurulduğu yer: adresteki {id} · Hizmet satırı · kimliği: appointment_guest_service

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
line_not_foundHizmet satırı bulunmalı.
already_cancelledRandevu iptal edilmiş olmamalı.
already_finishedRandevu bitmiş olmamalı.
last_serviceSon hizmet kaldırılamaz — bunun yerine iptal edin.

Yayımladığı olaylar: appointments.service_removed

Neye yazar: appointment_guest_service (delete) — Removes the line; appointment_guest (delete) — Removes a guest left with nothing; appointment (update) — Re-totals duration, price and end time

curl -X POST https://app.getera.io/api/v1/appointment_guest_services/APPOINTMENT_GUEST_SERVICE_ID/actions/remove_service \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "appointments.service_removed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.appointmentGuestServices.removeService("APPOINTMENT_GUEST_SERVICE_ID")
era appointment_guest_services remove_service APPOINTMENT_GUEST_SERVICE_ID
tools/call
{
  "name": "era__appointments__remove_service",
  "arguments": {
    "lineId": "APPOINTMENT_GUEST_SERVICE_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde appointments:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 line_not_found, already_cancelled, already_finished, last_service · 429 çok sık istek

appointments.reschedule

Randevuyu taşı — Randevuyu başka bir gün veya saate taşır; her kuralı yeni saate göre yeniden kontrol eder.

Gereken izin appointments:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/appointments/{id}/actions/reschedule
API anahtarı ya da OAuth token · appointments:write
  • Asıl adres: POST /api/v1/actions/appointments.reschedule

Girdi

AlanTürZorunluAçıklama
appointmentIduuidevetDoldurulduğu yer: adresteki {id} · Randevu · kimliği: appointment
appointmentDatedateevetYeni tarih
startTimestringevetYeni başlangıç saati · en çok 8

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundRandevu bulunmalı.
already_cancelledİptal edilmiş bir randevu taşınamaz.
already_finishedBitmiş bir randevu taşınamaz.
unchangedYeni saat mevcut saatten farklı olmalı.
no_servicesRandevunun hâlâ hizmet satırları olmalı.
inside_cutoffYeni saat, son randevu alma süresine uymalı.
outside_windowYeni saat, randevu alınabilecek zaman aralığında olmalı.
service_not_offered_that_dayHer hizmet yeni hafta gününde sunuluyor olmalı.
closed_that_dayYeni tarih bir özel günle kapatılmış olmamalı.
outside_working_hoursTüm randevu çalışma saatlerine sığmalı.
provider_on_leaveRandevudaki kimse o sırada izinde olamaz.
slot_takenRandevudaki herkes yeni zaman aralığında müsait olmalı.
class_fullDerste yeni saatte hâlâ yer olmalı.
no_workspaceSaati için çalışma alanı okunabilir olmalı.

Yayımladığı olaylar: appointments.rescheduled

Neye yazar: appointment (update) — Moves the date, start and end

curl -X POST https://app.getera.io/api/v1/appointments/APPOINTMENT_ID/actions/reschedule \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"appointmentDate":"2026-11-02","startTime":"New start time"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "appointments.rescheduled"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.appointments.reschedule("APPOINTMENT_ID", {
  appointmentDate: "2026-11-02",
  startTime: "New start time"
})
era appointments reschedule APPOINTMENT_ID \
  --appointment-date "2026-11-02" \
  --start-time "New start time"
tools/call
{
  "name": "era__appointments__reschedule",
  "arguments": {
    "appointmentId": "APPOINTMENT_ID",
    "appointmentDate": "2026-11-02",
    "startTime": "New start time"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde appointments:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, already_cancelled, already_finished, unchanged, no_services, inside_cutoff, outside_window, service_not_offered_that_day, closed_that_day, outside_working_hours, provider_on_leave, slot_taken, class_full, no_workspace · 429 çok sık istek

appointments.reschedule_by_token

Bağlantıyla taşı — Randevunun yönetim bağlantısına sahip olan kişi, randevuyu ekibin uyduğu kurallarla başka bir boş saate taşır; eski saat boşalır.

Gereken izin appointments:write · veriyi değiştirir · Yayındaki bir siteden de çağrılabilir (visitor)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/appointments/actions/reschedule_by_token
API anahtarı ya da OAuth token · appointments:write
  • Asıl adres: POST /api/v1/actions/appointments.reschedule_by_token

Girdi

AlanTürZorunluAçıklama
tokenstringevetBağlantı · en çok 100
appointmentDatedateevetYeni tarih
startTimestringevetYeni başlangıç saati · en çok 8

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
booking_link_invalidBu bağlantı bu işletmenin bir randevusuna ait değil.
booking_startedRandevu başladıktan sonra yapılamaz.
slot_takenRandevudaki herkes yeni saatte müsait olmalı.

Yayımladığı olaylar: appointments.rescheduled

Neye yazar: appointment (update) — Moves the date, start and end

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde appointments:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 booking_link_invalid, booking_started, slot_taken · 429 çok sık istek

appointments.reschedule_my_booking

Randevumu taşı — Giriş yapmış müşteri, yaklaşan randevularından birini ekibin uyduğu kurallarla başka bir boş saate taşır.

Gereken izin appointments:write · veriyi değiştirir · Yayındaki bir siteden de çağrılabilir (customer)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/appointments/{id}/actions/reschedule_my_booking
API anahtarı ya da OAuth token · appointments:write
  • Asıl adres: POST /api/v1/actions/appointments.reschedule_my_booking

Girdi

AlanTürZorunluAçıklama
appointmentIduuidevetDoldurulduğu yer: adresteki {id} · Rezervasyon · kimliği: appointment
appointmentDatedateevetYeni tarih
startTimestringevetYeni başlangıç saati · en çok 8

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_your_bookingYalnızca müşterinin katılımcısı olduğu bir randevu için yapılabilir.
booking_startedRandevu başladıktan sonra yapılamaz.
slot_takenRandevudaki herkes yeni zaman aralığında müsait olmalı.

Yayımladığı olaylar: appointments.rescheduled

Neye yazar: appointment (update) — Moves the date, start and end

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde appointments:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_your_booking, booking_started, slot_taken · 429 çok sık istek

appointments.set_reminder_opt_out

Kişi için randevu hatırlatmaları — Müşterinin randevu hatırlatması isteyip istemediğini kaydeder.

Gereken izin appointments:write · siler ya da geri alınamaz

POSThttps://app.getera.io/api/v1/appointment_reminder_opt_outs/actions/set_reminder_opt_out
API anahtarı ya da OAuth token · appointments:write
  • Asıl adres: POST /api/v1/actions/appointments.set_reminder_opt_out

Girdi

AlanTürZorunluAçıklama
customerIduuidevetMüşteri · kimliği: customer
optOutbooleanevetHatırlatılmasın

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
customer_not_foundMüşteri bulunmalı.

Yayımladığı olaylar: appointments.reminder_opt_out_changed

Neye yazar: appointment_reminder_opt_out (insert) — Records the opt-out; appointment_reminder_opt_out (delete) — Removes it again

curl -X POST https://app.getera.io/api/v1/appointment_reminder_opt_outs/actions/set_reminder_opt_out \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"customerId":"CUSTOMER_ID","optOut":true}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "appointments.reminder_opt_out_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.appointmentReminderOptOuts.setReminderOptOut({
  customerId: "CUSTOMER_ID",
  optOut: true
})
era appointment_reminder_opt_outs set_reminder_opt_out \
  --customer-id "CUSTOMER_ID" \
  --opt-out true
tools/call
{
  "name": "era__appointments__set_reminder_opt_out",
  "arguments": {
    "customerId": "CUSTOMER_ID",
    "optOut": true
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde appointments:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 customer_not_found · 429 çok sık istek

appointments.update_details

Notu düzenle — Personelin okuduğu not ve işletmede olmayan bir ziyaretin adresi.

Gereken izin appointments:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/appointments/{id}/actions/update_details
API anahtarı ya da OAuth token · appointments:write
  • Asıl adres: POST /api/v1/actions/appointments.update_details

Girdi

AlanTürZorunluAçıklama
appointmentIduuidevetDoldurulduğu yer: adresteki {id} · Randevu · kimliği: appointment
notesstringNot · en çok 2000
addressstringAdres · Yalnızca evde hizmet — ziyaretin yapılacağı yer. · en çok 500

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundRandevu bulunmalı.

Yayımladığı olaylar: appointments.details_updated

Neye yazar: appointment (update) — Stores the note and the address

curl -X POST https://app.getera.io/api/v1/appointments/APPOINTMENT_ID/actions/update_details \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"notes":"Note"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "appointments.details_updated"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.appointments.updateDetails("APPOINTMENT_ID", {
  notes: "Note"
})
era appointments update_details APPOINTMENT_ID \
  --notes "Note"
tools/call
{
  "name": "era__appointments__update_details",
  "arguments": {
    "appointmentId": "APPOINTMENT_ID",
    "notes": "Note"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde appointments:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found · 429 çok sık istek

Veri modelleri

AppointmentGuestService

Tablo appointment_guest_service · Kaynak appointment_guest_services

  • GET /api/v1/appointment_guest_services
  • GET /api/v1/appointment_guest_services/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
appointment_idstring (uuid) · uuidappointment
appointment_guest_idstring (uuid) · uuidappointment_guest
item_variant_idstring (uuid) · uuiditem_variant
member_user_idstring (uuid) · uuidevetapp_user
durationinteger · int4
price_amountstring (int64) · int8
price_currencystring · bpchareveten çok 3
sort_orderinteger · int4
created_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK ((duration > 0))
  • CHECK ((price_amount >= 0))

AppointmentGuest

Tablo appointment_guest · Kaynak appointment_guests

  • GET /api/v1/appointment_guests
  • GET /api/v1/appointment_guests/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
appointment_idstring (uuid) · uuidappointment
customer_idstring (uuid) · uuidcustomer
sort_orderinteger · int4
created_atstring (date-time) · timestamptz

Birincil anahtar: id

AppointmentImportJob

Tablo appointment_import_job · Kaynak appointment_import_jobs

  • GET /api/v1/appointment_import_jobs
  • GET /api/v1/appointment_import_jobs/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
created_bystring (uuid) · uuidapp_user
file_namestring · text
mappingobject · jsonb
statusstring · textqueued, running, completed, failed
total_rowsinteger · int4
imported_rowsinteger · int4
failed_rowsinteger · int4
resultobject · jsonb
started_atstring (date-time) · timestamptzevet
finished_atstring (date-time) · timestamptzevet
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK ((failed_rows >= 0))
  • CHECK ((imported_rows >= 0))
  • CHECK ((total_rows >= 0))

AppointmentReminderOptOut

Tablo appointment_reminder_opt_out · Kaynak appointment_reminder_opt_outs

  • GET /api/v1/appointment_reminder_opt_outs
  • GET /api/v1/appointment_reminder_opt_outs/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
customer_idstring (uuid) · uuidcustomer
created_bystring (uuid) · uuidevetapp_user
created_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: workspace_id, customer_id

Appointment

Tablo appointment · Kaynak appointments

  • GET /api/v1/appointments
  • GET /api/v1/appointments/{id}
  • POST /api/v1/appointments → appointments.book
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
appointment_datestring (date) · date
start_timestring (time) · time
end_timestring (time) · time
total_durationinteger · int4
total_price_amountstring (int64) · int8
total_price_currencystring · bpchareveten çok 3
statusstring · textpending, confirmed, completed, cancelled, no_show
notesstring · textevet
cancellation_reasonstring · textevet
cancelled_atstring (date-time) · timestamptzevet
owner_user_idstring (uuid) · uuidevetapp_user
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz
addressstring · textevet
reminder_due_atstring (date-time) · timestamptzevet
deposit_amountstring (int64) · int8
deposit_statusstring · textnot_required, required, pending, paid, failed, refunded
booked_online_atstring (date-time) · timestamptzevet

Birincil anahtar: id

Denetimler:

  • CHECK ((end_time > start_time))
  • CHECK (((status = 'cancelled'::text) = (cancelled_at IS NOT NULL)))
  • CHECK ((deposit_amount >= 0))
  • CHECK ((total_duration >= 0))
  • CHECK ((total_price_amount >= 0))

BannedCustomer

Tablo banned_customer · Kaynak banned_customers

  • GET /api/v1/banned_customers
  • GET /api/v1/banned_customers/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
emailstring · textevet
phonestring · textevet
reasonstring · textevet
notesstring · textevet
banned_bystring (uuid) · uuidevetapp_user
created_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK (((email IS NOT NULL) OR (phone IS NOT NULL)))

Olaylar

İş akışları ve webhook'lar bu olaylara tepki verir.

OlayNe olurTaşıdığı alanlar
appointments.ban_liftedBir engel kaldırıldı.id
appointments.bookedBir randevu alındı.id, appointmentDate, startTime, customerId, itemVariantId, memberUserId, totalAmount, currency, depositAmount
appointments.cancelledBir randevu iptal edildi ve saat boşaldı.id, appointmentDate, startTime, reason, customerId
appointments.completedRandevu gerçekleşti.id, customerId, customerName, appointmentDate, startTime, memberUserId, itemVariantId
appointments.confirmedBekleyen bir randevu kabul edildi.id, appointmentDate, customerId, totalAmount, currency
appointments.customer_bannedBirinin randevu alması engellendi.id, email, phone
appointments.deposit_changedBir randevunun kaporasının durumu değişti.id, from, to, amount
appointments.details_updatedNot ya da adres değişti.id
appointments.exportedRandevular dosya olarak indirildi.count, from, to, truncated
appointments.guest_addedBir randevuya başka biri katıldı.id, guestId, customerId, lineId
appointments.guest_customer_changedBir misafirin yeri başka birine verildi.id, guestId, fromCustomerId, customerId, lineIds
appointments.guest_removedBiri bir randevudan çıkarıldı.id, guestId
appointments.import_completedEşleştirilmiş randevu dosyasının içe aktarımı bitti.id, imported, failed
appointments.member_assignedBir hizmet satırı başka bir ekip üyesine atandı.id, lineId, memberUserId
appointments.no_showMüşteri gelmedi.id, customerId, customerName, appointmentDate, startTime, memberUserId, itemVariantId
appointments.reminder_dueBir randevu hatırlatma süresine girdi — bildirim kuralları gönderir.id, appointmentDate, startTime, customerId, customerIds, channels, hoursBefore, timezone
appointments.reminder_opt_out_changedBir müşteri randevu hatırlatmalarını almaya başladı ya da bıraktı.customerId, optOut
appointments.rescheduledBir randevu başka bir saate taşındı.id, fromDate, fromStartTime, appointmentDate, startTime, customerId
appointments.service_addedBir randevuya başka bir hizmet eklendi.id, lineId, itemVariantId
appointments.service_removedBir randevudan bir hizmet çıkarıldı.id, lineId