Record on a calendar event
Start recording when a meeting begins and stop when it ends, driven by an external trigger.
This captures real audio
Starting a recording captures live microphone and/or system audio and fires the app overlay. Only automate this for meetings the participants know are being recorded, and get their consent. Scope the token to record only.
This recipe starts a recording when a calendar event begins and stops it when the event ends. The trigger - a calendar integration, a cron job, or a scheduler - is yours; this page shows the Meetily calls it makes. Set $MEETILY_PRO_TOKEN to a record-scoped token first, and turn on the Automation API under Settings > Integrations (see Enable & connect).
Start at the event start
When your trigger fires at the event's start time, call POST /v1/recording/start. Its body fields (meeting_name, mic_device_name, system_device_name, consent_attested) are all optional.
curl -s -X POST http://127.0.0.1:8420/v1/recording/start \
-H "Authorization: Bearer $MEETILY_PRO_TOKEN" \
-H "content-type: application/json" \
-d '{"meeting_name":"Weekly sync"}'meetily-pro recording start --meeting-name "Weekly sync"Stop at the event end
When your trigger fires at the event's end time, call POST /v1/recording/stop.
curl -s -X POST http://127.0.0.1:8420/v1/recording/stop \
-H "Authorization: Bearer $MEETILY_PRO_TOKEN"meetily-pro recording stopConfirm it started
To be sure capture began before you rely on it, wait for the started transition on the recording wait stream. This is a one-shot SSE endpoint - it emits a single event, then closes - and it needs only read scope.
curl -N -s "http://127.0.0.1:8420/v1/recording/wait?until=started&timeout=30" \
-H "Authorization: Bearer $MEETILY_PRO_TOKEN"There's no CLI equivalent for the wait stream - use curl -N. You can also read the current state at any time with GET /v1/recording.
Remote triggers need pre-arm
If your trigger runs on another device over the LAN rather than on the Meetily machine, a remote recording start is refused with 403 not_prearmed unless remote_recording_prearmed is turned on (it's off by default). See Pairing & remote access. Running the trigger on the same machine over loopback avoids this entirely.
consent_attested is optional, but an explicit false is rejected
Omitting consent_attested, or sending true, starts the recording. Sending an explicit false returns 400. Use it when your trigger wants to record the fact that consent was attested at start time.
Before wiring a trigger up, a cheap GET /health (no token) or meetily-pro doctor first lets it fail cleanly when Meetily isn't running. See Meetily APIs for the full recording route surface.
Last updated on
