Calendar scheduler
Agent reads your free/busy, proposes 3 slots, creates the event when the invitee picks one. Nylas under the hood.
Prerequisites
- Nylas OAuth completed at /connected-apps.
- calendar.* + scheduling.send_invite enabled on the agent.
Walkthrough
1. Read free/busy
calendar.read with a `time_min` / `time_max` window returns busy blocks. Diff against working hours to compute free slots.
bash# Pull one week of busy blocks.
curl -X POST https://www.upivia.com/v1/service-requests \
-H "Authorization: Bearer $AGENT_KEY" \
-H "Content-Type: application/json" \
-d '{
"service":"calendar",
"operation":"read",
"payload":{"calendar_id":"primary","time_min":"2026-06-01T00:00:00Z","time_max":"2026-06-08T00:00:00Z"}
}'2. Send the invite
scheduling.send_invite emails the picker UI; on confirmation, your webhook fires and you call calendar.create.
3. Reschedule / cancel
calendar.update (move) or calendar.cancel (kill) by event_id. Both write to /audit-logs so a refund-trail is intact.
Next steps
Audit every call at /audit-logs, watch spend at /usage, and tune budgets per service on the agent's page.
Create an account →