How to associate a workflow run ID with the schedule that triggered it?

Hi, I am looking to associate workflow run IDs with the schedule that triggered them (when applicable).
Schedules don’t seem to include run IDs for future workflow executions when listed with list_schedules(), nor is any schedule-related information included when the workflows are listed using list_workflows().
The workflow history for a scheduled workflow run doesn’t exist until the execution has begun, so it seems there is no concept of a queued or scheduled status for a particular workflow run either.
Is there any way to currently achieve this? Thanks!

The ScheduleListDescription has info.recent_actions which has instances of ScheduleActionResult whose action field will be an instance of ScheduleActionExecutionStartWorkflow which has the workflow and run ID.

Per What is a Temporal Workflow? | Temporal Documentation, the schedule’s ID is available as a search attribute on the workflow named TemporalScheduledById.

I believe this is only for scheduled workflow runs that have already started execution. The schedules also have a future_action_times, which only have a start time and not a run ID as the workflow hasn’t begun running yet.
The problem I am trying to solve is providing a single interface to track scheduled workflows as well as those that have already begun executing. There doesn’t seem to be a unique identifier to track the scheduled workflow as it transitions to running, as the run ID isn’t available until the workflow is running. A schedule ID may be associated with many workflow executions, so it can’t be considered a unique identifier for the workflow execution either.
It’s possible to introduce an external mapping for this purpose, but I was wondering if some functionality exists in Temporal already that I am missing.

Thanks, I had missed this. This is helpful for tracing a workflow that has already begun running back to the schedule that created it.

No, workflows don’t have a run ID until they are running. You cannot uniquely identify a future run as if it was a workflow because it may not happen (e.g. pause/removal of a schedule). There are only potential future times.