Using API v1? See what changes in v2, or the v1 docs
Sandbox
The sandbox environment that test keys work in.
The examples use IDs from a sample sandbox. Your sandbox has the same people, calendars and events with its own IDs, which GET /v2/sandbox returns. When you're signed in to the dashboard, Try it fills in your IDs and sends the request to your sandbox, never to live data.
Get the sandbox
Returns your app's sandbox. The sandbox works only with a test key and is created on its first request. It includes virtual accounts with sample calendars and events, and simulated Google, Outlook and Zoom accounts that respond as those providers do without contacting them.
Errors
AUTH_INVALID_KEY(401): The API key is missing, unknown or revoked.AUTH_EXPIRED_KEY(401): The API key has expired.AUTH_SANDBOX_MISMATCH(403): A test key was used with live data, or a live key was used with sandbox data.AUTH_INSUFFICIENT_SCOPE(403): The API key or session does not have permission to make this request.RATE_LIMIT_EXCEEDED(429): The request rate exceeds this plan's rate limit.RATE_LIMIT_BURST(429): Too many requests were sent in a short period.INTERNAL_ERROR(500): Something went wrong on our end.
Request
curl 'https://api.pyas.io/v2/sandbox' \ -H "x-api-key: $PYAS_API_KEY"Response
{ "success": true, "data": { "seededAt": "2026-11-14T20:00:23.534Z", "accounts": [ { "accountId": "sbx_fda58c5980_1", "provider": "pyas", "name": "Avery Brooks", "subjectId": "sandbox_user_1" }, { "accountId": "sbx_fda58c5980_2", "provider": "pyas", "name": "Sam Patel", "subjectId": "sandbox_user_2" }, { "accountId": "sbx_fda58c5980_3", "provider": "pyas", "name": "Yuki Tanaka", "subjectId": "sandbox_user_3" }, { "accountId": "sbx_fda58c5980_4", "provider": "pyas", "name": "Jordan Lee", "subjectId": "sandbox_user_4" }, { "accountId": "sbx_fda58c5980_5", "provider": "pyas", "name": "Riley Chen", "subjectId": "sandbox_user_5" }, { "accountId": "sbx_fda58c5980_google", "provider": "google", "name": "Avery Brooks", "subjectId": "sandbox_user_1" }, { "accountId": "sbx_fda58c5980_outlook", "provider": "microsoft", "name": "Sam Patel", "subjectId": "sandbox_user_2" }, { "accountId": "sbx_fda58c5980_zoom", "provider": "zoom", "name": "Avery Brooks", "subjectId": "sandbox_user_1" } ], "examples": { "account.avery": "sbx_fda58c5980_1", "subject.avery": "sandbox_user_1", "calendar.avery.primary": "calfda58c59801p", "calendar.avery.work": "calfda58c59801w", "event.avery.standup": "sb559d0de42dffb4f183c156f8", "event.avery.sprint": "sba4ff5f08df3d4dcbddca25a3", "event.avery.oneonone": "sba938ba8604d9bdff564147c2", "event.avery.productsync": "sbf60c8ae6a9f17c1e3b6cc2b8", "event.avery.design": "sbff8ee84b7939a1d7a4943ff6", "event.avery.customer": "sb0c940c95b43e44fcf6650886", "event.avery.lunch": "sbce3d2d42c2a4d690a9860fbb", "event.avery.dentist": "sb03fe318b8d28506fffad9254", "event.avery.focus": "sbf36d93862d5bc4f8bca3d967", "event.avery.talk": "sb3dc0420b772f0cc723098085", "event.avery.offsite": "sb381bb09d8b9512fdc96458a7", "event.avery.holiday": "sb0f18ff67cf75e9b0f2791f41", "event.avery.quarterly": "sbf031ba171ceac2ab4e014cb1", "event.avery.board": "sb0ee767b6db44fa6f8a796921", "event.avery.release": "sb021ac6e492b8cfcd2a449b94", "event.avery.oncall": "sb2e91a5da5a1fb2493ab0bae5", "event.avery.retro": "sb1b5d95184e2d895435bad820", "event.avery.hiring": "sb4e9d57c17109dc8e28387271", "account.sam": "sbx_fda58c5980_2", "subject.sam": "sandbox_user_2", "calendar.sam.primary": "calfda58c59802p", "calendar.sam.work": "calfda58c59802w", "event.sam.standup": "sbcbc04ba3fe4ddd1f0c0c8821", "event.sam.sprint": "sb07d8b89df0354beb287ab688", "event.sam.oneonone": "sb47a561a28f14bae33d187d98", "event.sam.productsync": "sb15c6c1a7e2f87335fbd2f837", "event.sam.design": "sb0fbdf5e66d7be472d5499373", "event.sam.customer": "sba3778c3cc1ea7e9b2123810f", "event.sam.lunch": "sb0ed0f6f377b2997f3de12ffa", "event.sam.dentist": "sbfdeea6fbfc9016ec8f12bfc9", "event.sam.focus": "sbcddf5da647f2526dd7d990f7", "event.sam.talk": "sbf919294b2e72fec55cd113cc", "event.sam.offsite": "sb2cac9acc3e10edb7242a575d", "event.sam.holiday": "sbe4a0e1fa4ea75e7197c3ba17", "event.sam.quarterly": "sb866914b50adea252ca4c8565", "event.sam.board": "sbc47c845e6b945be417d3062f", "event.sam.release": "sb1379632f67e8d64783a8ac00", "event.sam.oncall": "sb4dc88ff07bf33ca1ed2a029a", "event.sam.retro": "sb71ae3ab164710419d93b4b4a", "event.sam.hiring": "sb5d138acbe172b7921ab1dcb0", "account.yuki": "sbx_fda58c5980_3", "subject.yuki": "sandbox_user_3", "calendar.yuki.primary": "calfda58c59803p", "calendar.yuki.work": "calfda58c59803w", "event.yuki.standup": "sb0d85f9ee0eb5fea7e3b578ae", "event.yuki.sprint": "sbaf9251a02c8af1068cc68858", "event.yuki.oneonone": "sbb07344b2de6eda72b6c9b954", "event.yuki.productsync": "sb8b1e8b4e4d962529e224f9bf", "event.yuki.design": "sb93f8a0abb4787660ab81c268", "event.yuki.customer": "sb37a7074560f0071fae739d5f", "event.yuki.lunch": "sb3d548bac3dfe50dc692b9b4d", "event.yuki.dentist": "sbe7ea582766e506cdaf6d3578", "event.yuki.focus": "sb08665ae27ce9f3a4091183d2", "event.yuki.talk": "sbad20d94320f6a1de32100512", "event.yuki.offsite": "sb9e1a98694ea3bf9b1db8a8dd", "event.yuki.holiday": "sb3e01171d21ec26f595bb22a8", "event.yuki.quarterly": "sb5eb8eb5dc4b140c1ba2c9ce7", "event.yuki.board": "sb9a0396ea96846e4fd3b488b6", "event.yuki.release": "sb425be99e9141e3eb8bbd32b7", "event.yuki.oncall": "sb663fdac0ada858716992b4a3", "event.yuki.retro": "sba7cb09b9032a32d980348453", "event.yuki.hiring": "sbf1d965e6e6b9ea8f94a1d057", "account.jordan": "sbx_fda58c5980_4", "subject.jordan": "sandbox_user_4", "calendar.jordan.primary": "calfda58c59804p", "calendar.jordan.work": "calfda58c59804w", "event.jordan.standup": "sbea6f284d687cb26782e8c636", "event.jordan.sprint": "sb37bbff2a4693584e6f4d6c7e", "event.jordan.oneonone": "sbecbda5d76824198f3e12ef7f", "event.jordan.productsync": "sbf1d4b177a25621cc16590d08", "event.jordan.design": "sb116b030984b5698d5e4c81ec", "event.jordan.customer": "sb217c316443b0d8f2c67ff632", "event.jordan.lunch": "sb532287296e9c7855a7b5e9da", "event.jordan.dentist": "sb3c358ba3551037377d43b981", "event.jordan.focus": "sb1c5c786e842cbee885e6a721", "event.jordan.talk": "sb4b8a5518a89808de94fb57a0", "event.jordan.offsite": "sb8b3352f72b90f105d8e84310", "event.jordan.holiday": "sb97847c4c761dc2c34fce5f9b", "event.jordan.quarterly": "sbbed21aa850958f40d0ddf638", "event.jordan.board": "sb0cc16d90737f55624ce330b0", "event.jordan.release": "sb4da4d05514f7c97665bfcdee", "event.jordan.oncall": "sb28daed7655383de30552be76", "event.jordan.retro": "sb88c16f88bc4751161369a112", "event.jordan.hiring": "sb06d2b6b90745219bb1864b81", "account.riley": "sbx_fda58c5980_5", "subject.riley": "sandbox_user_5", "calendar.riley.primary": "calfda58c59805p", "calendar.riley.work": "calfda58c59805w", "event.riley.standup": "sbeac72e2e596799aad8600049", "event.riley.sprint": "sb1d91fcc56b10d3e962b3dc16", "event.riley.oneonone": "sb5503d314463b2fc4568daf71", "event.riley.productsync": "sb7ba69c6a96e48bf41d632aa9", "event.riley.design": "sb7f567757501e6f8918a68ccf", "event.riley.customer": "sbe5afcb8859a2d26117bada7f", "event.riley.lunch": "sb10b1e81721cb49bbab0c4498", "event.riley.dentist": "sbb67b9d59ef7c6160f31d5438", "event.riley.focus": "sb719ce1d0462de81428df52db", "event.riley.talk": "sb2f5479606451d712d0698f39", "event.riley.offsite": "sb374b1313a775a9061957b191", "event.riley.holiday": "sbb3b186f28c815491bd628c5b", "event.riley.quarterly": "sb506918cbd1f078f6c7682ba2", "event.riley.board": "sbe28ff8c800fe9e46ee632ed3", "event.riley.release": "sb280ea76c6eeb1ebadeecfa5b", "event.riley.oncall": "sb11c31def8bb4d99c166481e6", "event.riley.retro": "sb34c492d642099ac9fbd7a680", "event.riley.hiring": "sb0032a71b261cdfc1fbdd5968", "event.avery.zoomcall": "sb16ba49792a79d2ce856e789a", "account.google": "sbx_fda58c5980_google", "account.outlook": "sbx_fda58c5980_outlook", "account.zoom": "sbx_fda58c5980_zoom", "calendar.google.primary": "avery.brooks@example.com", "calendar.google.team": "c_fda58c5980team@group.calendar.google.com", "calendar.google.holidays": "en.usa#holiday@group.v.calendar.google.com", "calendar.outlook.primary": "AAMkAU662pGNAu0JgQ5Fpjf1wipv7j82pYQuBvDbbTPOq8h4AAA=", "calendar.outlook.acme": "AAMkA-M9ePPI-lDjuHutrLL7ee-FjiW4n60cpd6GPnyDTv84AAA=", "calendar.outlook.morgan": "AAMkAPZCx8r3fRaim7oP6DyRH-4h12pnbtU0iizh-r7n7VpQAAA=", "attachment.google.agenda": "1tTOPj3dD9zJTxnuHOHkvShgQGzYdlWUb", "attachment.outlook.agenda": "AAMkArXFqduOUNsr8qIMCtJ66XOMYtyB4ZLBHoqtmM72Np-gAAA=", "permission.outlook.morgan": "AAMkAO3ALRxedE66VdRlJ7Mztds26zRxlvC0Kb-0ARjadAcQAAA=", "meeting.zoom.standup": "97474246023", "meeting.zoom.demo": "40824382962", "event.google.invite": "sg4fb9224b7476cc20ab4a5c41", "event.google.kickoff": "sg314c0fd5415a58a532cd018d", "event.google.weekly": "sge228430fc2a09c03dd8c1801", "event.google.focus": "sg6297ccf7345c268029ccb5fa", "event.google.trip": "sg6ea8a09f4ce349fe4438c48c", "event.google.office": "sgcd2d8976578edb2f608c814d", "event.google.home": "sg69e86df5bfd6e93979271e83", "event.outlook.review": "AAMkABPQiivgqLU9tm9fMz97PHOQGGb0wy-xR-Eg22SuOCP8AAA=", "event.outlook.invite": "AAMkAaqP10JDPp4BdGjaZyg2dF63m6W8eIe6XhxRsmKdLG38AAA=", "event.outlook.oneonone": "AAMkAfyVo0SAxuZUKe2fHy8vnD8hwmEI2TPen-4bOQRyI85YAAA=", "event.outlook.lunch": "AAMkAmkT0JZAAD-QlweAroEZ60WkpCuHxOrvb1V8lA1M3khEAAA=", "event.outlook.acme": "AAMkAXGIe3xE7fw-FQRwtA9eM3XR5OlTgW90xTZlDQyK9z1MAAA=", "category.outlook.red": "2eb82094-ec40-4d5d-a8b8-15cf273998c1", "category.outlook.orange": "945326ef-02ee-47a7-a625-8364f33d9abd", "category.outlook.yellow": "d4c5c9cb-5502-42de-a335-3f8f85322a98", "category.outlook.green": "109ef2a3-89fc-4525-a7b8-d4d3eddfec23", "category.outlook.blue": "0eed55fa-f6a2-4cb2-a808-1ab178ff93b5", "category.outlook.purple": "18d6d65c-6b1e-47ac-ac6f-5ae45fad5968", "category.google.deepwork": "lbl41c7fe365963", "category.google.travel": "lbld0ade325f932", "group.outlook.mine": "AAMkAPtDnBoVMLgLIu-5ZykUH3m3F8jh-vhqP8YlJhgiZLHEAAA=", "group.outlook.others": "AAMkAyCWrTohk9tAZoyL6-kuuLYadpDmD-3sFfQAb6CXpof0AAA=", "group.outlook.clients": "AAMkAFDoRdCjiMqrQ0gUzJhGn7fWP7a-kYNGIymOmCmTrT7cAAA=", "group.outlook.projects": "AAMkAYE1Kc3zrnSLkXx5fXHBEPOfQSybhu8nRccpNiIpXWVwAAA=", "webhook.inbox": "whk_sbx671d37d5e9995de7b6be", "webhookEvent.inbox": "evt_sbx0b0f2dbfa1198fcb366c", "delivery.inbox": "del_sbxf61f198fc5d9f0072a38" } }, "provider": null, "traceId": "trc_5f2a9c1e7b3d4a6f8e0c2b1d", "meta": {}}Reset the sandbox
Deletes everything in the sandbox and repopulates it with the sample accounts, calendars and events.
Headers
- Name
Idempotency-Key- Type
- string
- Description
A unique key that makes the request safe to retry. A retry with the same key returns the original response and does not make the change twice. Keys are kept for 24 hours.
Errors
AUTH_INVALID_KEY(401): The API key is missing, unknown or revoked.AUTH_EXPIRED_KEY(401): The API key has expired.AUTH_SANDBOX_MISMATCH(403): A test key was used with live data, or a live key was used with sandbox data.AUTH_INSUFFICIENT_SCOPE(403): The API key or session does not have permission to make this request.RATE_LIMIT_EXCEEDED(429): The request rate exceeds this plan's rate limit.RATE_LIMIT_BURST(429): Too many requests were sent in a short period.INTERNAL_ERROR(500): Something went wrong on our end.
Request
curl -X POST 'https://api.pyas.io/v2/sandbox/reset' \ -H "x-api-key: $PYAS_API_KEY"Response
{ "success": true, "data": { "seededAt": "2026-11-14T20:00:24.721Z" }, "provider": null, "traceId": "trc_5f2a9c1e7b3d4a6f8e0c2b1d", "meta": {}}Simulate an external change
Creates, updates or deletes an event the way someone outside your app would, for example in Google Calendar, Microsoft Outlook or another app. Use it to test how your app handles changes it didn't make. Pyas detects the change and sends webhooks as it would for a real account. The webhooks don't include request, because the change didn't come from one of your requests. created adds an event tomorrow at 16:00 UTC. updated renames an event and moves it 30 minutes later. deleted deletes the event. If you omit eventId, the API uses the next upcoming single event on the calendar.
In the sandbox: Then check for the webhooks in GET /v2/webhooks/deliveries (the sandbox inbox) or in the relay.
Headers
- Name
Idempotency-Key- Type
- string
- Description
A unique key that makes the request safe to retry. A retry with the same key returns the original response and does not make the change twice. Keys are kept for 24 hours.
Body
- Name
accountId- Type
- string
- Required
- required
- Description
A sandbox account. Use a virtual account, or the simulated Google or Outlook account.
- Name
change- Type
- string
- Required
- required
- Description
One of
created,updated,deleted.
- Name
eventId- Type
- string
- Description
- Name
calendarRef- Type
- string
- Description
Defaults to
primary.
Errors
AUTH_INVALID_KEY(401): The API key is missing, unknown or revoked.AUTH_EXPIRED_KEY(401): The API key has expired.AUTH_SANDBOX_MISMATCH(403): A test key was used with live data, or a live key was used with sandbox data.AUTH_INSUFFICIENT_SCOPE(403): The API key or session does not have permission to make this request.CONNECTION_NOT_FOUND(404): No connected account was found for this request.RESOURCE_NOT_FOUND(404): The calendar or event was not found.RATE_LIMIT_EXCEEDED(429): The request rate exceeds this plan's rate limit.RATE_LIMIT_BURST(429): Too many requests were sent in a short period.INTERNAL_ERROR(500): Something went wrong on our end.
Request
curl -X POST 'https://api.pyas.io/v2/sandbox/simulate-change' \ -H "x-api-key: $PYAS_API_KEY" \ -H "content-type: application/json" \ -d '{ "accountId": "sbx_fda58c5980_google", "change": "updated", "eventId": "sg314c0fd5415a58a532cd018d"}'Response
{ "success": true, "data": { "change": "updated", "event": { "id": "sg314c0fd5415a58a532cd018d", "iCalUID": "sg314c0fd5415a58a532cd018d@google.com", "title": "Project Atlas kickoff (changed)", "description": null, "location": null, "startsAt": "2026-11-15T19:30:00Z", "endsAt": "2026-11-15T20:30:00Z", "startsAtLocal": "2026-11-15T14:30:00-05:00", "endsAtLocal": "2026-11-15T15:30:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [ { "email": "casey.nguyen@example.com", "name": "Casey Nguyen", "response": "accepted", "optional": false, "isOrganizer": false }, { "email": "drew.okafor@example.com", "name": "Drew Okafor", "response": "needsAction", "optional": false, "isOrganizer": false } ], "rooms": [], "organizer": { "email": "avery.brooks@example.com", "name": "Avery Brooks" }, "conferencing": { "provider": "meet", "joinUrl": "https://meet.google.com/slk-zsog-xml", "meetingId": "slk-zsog-xml", "passcode": null, "dialIn": [ { "label": "+1 555-0100", "number": "+1-555-0100", "pin": "478462722" } ] }, "meetingUrl": "https://meet.google.com/slk-zsog-xml", "recurrence": null, "series": null, "reminders": [], "attachments": [ { "url": "https://docs.google.com/document/d/1tTOPj3dD9zJTxnuHOHkvShgQGzYdlWUb/edit", "title": "Kickoff agenda", "mimeType": "application/vnd.google-apps.document" } ], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:24.212Z", "updatedAt": "2026-11-14T20:00:24.680Z", "version": "\"2\"", "provider": "google", "providerRefs": { "eventId": "sg314c0fd5415a58a532cd018d", "calendarId": "avery.brooks@example.com", "accountId": "sbx_fda58c5980_google" }, "metadata": null } }, "provider": null, "traceId": "trc_5f2a9c1e7b3d4a6f8e0c2b1d", "meta": {}}Simulate a Zoom meeting event
Simulates a Zoom event for a meeting made with the simulated Zoom account, as Zoom would report it: the meeting of a sandbox event (send eventId), or one made with POST /v2/meetings (send meetingId, with the Zoom account as accountId). The meeting can start or end, a participant can join or leave, its recording can become ready, or it can be updated or deleted in Zoom. The matching webhook, such as meeting.started or recording.ready, is sent as it would be for a real Zoom account.
In the sandbox: Then check for the recording.ready webhook in GET /v2/webhooks/deliveries (the sandbox inbox) or in the relay.
Headers
- Name
Idempotency-Key- Type
- string
- Description
A unique key that makes the request safe to retry. A retry with the same key returns the original response and does not make the change twice. Keys are kept for 24 hours.
Body
- Name
accountId- Type
- string
- Required
- required
- Description
The calendar account the event is on. For a meeting made with
POST /v2/meetings, the Zoom account.
- Name
eventId- Type
- string
- Description
An event with a Zoom meeting created by the sandbox's Zoom account.
- Name
meetingId- Type
- string
- Description
Instead of
eventId: a meeting made withPOST /v2/meetingsand the sandbox's Zoom account.
- Name
what- Type
- string
- Required
- required
- Description
One of
started,ended,participant_joined,participant_left,recording_ready,updated,deleted.
Errors
AUTH_INVALID_KEY(401): The API key is missing, unknown or revoked.AUTH_EXPIRED_KEY(401): The API key has expired.AUTH_SANDBOX_MISMATCH(403): A test key was used with live data, or a live key was used with sandbox data.AUTH_INSUFFICIENT_SCOPE(403): The API key or session does not have permission to make this request.RESOURCE_NOT_FOUND(404): The calendar or event was not found.RATE_LIMIT_EXCEEDED(429): The request rate exceeds this plan's rate limit.RATE_LIMIT_BURST(429): Too many requests were sent in a short period.INTERNAL_ERROR(500): Something went wrong on our end.
Request
curl -X POST 'https://api.pyas.io/v2/sandbox/simulate-meeting' \ -H "x-api-key: $PYAS_API_KEY" \ -H "content-type: application/json" \ -d '{ "accountId": "sbx_fda58c5980_1", "eventId": "sb16ba49792a79d2ce856e789a", "what": "recording_ready"}'Response
{ "success": true, "data": { "what": "recording_ready", "meetingId": "67556028668", "told": 1 }, "provider": null, "traceId": "trc_5f2a9c1e7b3d4a6f8e0c2b1d", "meta": {}}Simulate an invitation response
Simulates an attendee of a sandbox event on a virtual calendar responding to its invitation by email, as their calendar app would. The response can be accepted, declined or tentative, with a comment and, optionally, a proposed alternative time. Pyas records the response on the attendee and sends invitation.replied and event.updated, as it would for a real reply.
In the sandbox: Then check for invitation.replied in GET /v2/webhooks/deliveries (the sandbox inbox), and check the attendee's response on the event.
Headers
- Name
Idempotency-Key- Type
- string
- Description
A unique key that makes the request safe to retry. A retry with the same key returns the original response and does not make the change twice. Keys are kept for 24 hours.
Body
- Name
accountId- Type
- string
- Required
- required
- Description
A virtual account in the sandbox.
- Name
eventId- Type
- string
- Required
- required
- Description
- Name
email- Type
- string
- Required
- required
- Description
The email address of an attendee of the event.
- Name
response- Type
- string
- Required
- required
- Description
One of
accepted,declined,tentative.
- Name
comment- Type
- string
- Description
- Name
proposedTime- Type
- object
- Description
- Name
proposedTime.startsAt- Type
- string
- Required
- required
- Description
- Name
proposedTime.endsAt- Type
- string
- Required
- required
- Description
Errors
VALIDATION_INVALID_BODY(400): The request body is not valid.AUTH_INVALID_KEY(401): The API key is missing, unknown or revoked.AUTH_EXPIRED_KEY(401): The API key has expired.AUTH_SANDBOX_MISMATCH(403): A test key was used with live data, or a live key was used with sandbox data.AUTH_INSUFFICIENT_SCOPE(403): The API key or session does not have permission to make this request.RESOURCE_NOT_FOUND(404): The calendar or event was not found.RATE_LIMIT_EXCEEDED(429): The request rate exceeds this plan's rate limit.RATE_LIMIT_BURST(429): Too many requests were sent in a short period.INTERNAL_ERROR(500): Something went wrong on our end.
Request
curl -X POST 'https://api.pyas.io/v2/sandbox/simulate-reply' \ -H "x-api-key: $PYAS_API_KEY" \ -H "content-type: application/json" \ -d '{ "accountId": "sbx_fda58c5980_1", "eventId": "sbff8ee84b7939a1d7a4943ff6", "email": "teammate2.1@example.com", "response": "tentative", "comment": "Could we start at 3:30?", "proposedTime": { "startsAt": "2026-11-15T15:30:00Z", "endsAt": "2026-11-15T16:30:00Z" }}'Response
{ "success": true, "data": { "recorded": true, "eventId": "sbff8ee84b7939a1d7a4943ff6" }, "provider": null, "traceId": "trc_5f2a9c1e7b3d4a6f8e0c2b1d", "meta": {}}