# Schedule workflows that communicate through Temporal signals

**URL:** <https://community.temporal.io/t/schedule-workflows-that-communicate-through-temporal-signals/18605>\
**Category:** Community Support\
**Tags:** python-sdk\
**Created:** [October 28, 2025, 1:18pm UTC](https://community.temporal.io/t/schedule-workflows-that-communicate-through-temporal-signals/18605 "2025-10-28T13:18:00Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![ammar-deriv](https://avatars.discourse-cdn.com/v4/letter/a/43a26b/32.png) [@ammar-deriv](https://community.temporal.io/u/ammar-deriv)\
**Post date:** [October 28, 2025, 1:18pm UTC](https://community.temporal.io/t/schedule-workflows-that-communicate-through-temporal-signals/18605/1 "2025-10-28T13:18:00Z")

</div>

I have 5 workflows, lets say workflow A, B, C and D. I want my workflow to communicate with Signal. At the same time I want it to be schedule. What I have done is to using the this [documentation/sample-apps/python/signal\_your\_workflow/signal\_external\_wf\_dacx.py at main · temporalio/documentation · GitHub](https://github.com/temporalio/documentation/blob/main/sample-apps/python/signal_your_workflow/signal_external_wf_dacx.py) - sender-receiver design, to send signal from workflow A to some activity, then once completed it will send signal to workflow B, then workflow B will run till complete.

In the link, if you can see, the `workflow.get_external_workflow_handle_for` required a workflow\_id, which is a static workflow id. However, `client.create_schedule` will create a non-static workflow id, which is workflow id + timestamp.

Hence, how can I get the handle from `get_external_workflow_handle_for` if the schedule workflow is non-static, which has timestamp? I tested using `datetime.now` and its unstable, because of the time issue accuracy.

Is this even possible? I just want to use Temporal native scheduler, at the same time to enable workflow to communicate with Signal.

Appreciate your help.

---

<div class="post-metadata">

**Author:** ![antonio.perez](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/antonio.perez/32/2417_2.png) [@antonio.perez](https://community.temporal.io/u/antonio.perez)\
**Post date:** [October 28, 2025, 3:14pm UTC](https://community.temporal.io/t/schedule-workflows-that-communicate-through-temporal-signals/18605/2 "2025-10-28T15:14:34Z")

</div>

Hi,

> However, `client.create_schedule` will create a non-static workflow id, which is workflow id + timestamp.

yes, we have an issue to improve this [Schedules - add option for execution workflowid to be "as-is" (not unique per run) · Issue #4795 · temporalio/temporal · GitHub](https://github.com/temporalio/temporal/issues/4795)

for now you will need to use an activity/local activity to get the last workflow id started by the schedule.

```auto
        handle = client.get_schedule_handle(
            schedule.id,
        )
        (await handle.describe()).info.running_actions // """Currently running actions."""

```

Use an [activity method](https://github.com/temporalio/samples-python/blob/main/hello/hello_activity_method.py) to inject the workflow client

is it A a workflow initiated by a schedule as well? if not you could have B signaling A first to register its workflowid

Antonio

---

<div class="post-metadata">

**Author:** ![ammar-deriv](https://avatars.discourse-cdn.com/v4/letter/a/43a26b/32.png) [@ammar-deriv](https://community.temporal.io/u/ammar-deriv)\
**Post date:** [October 29, 2025, 1:20am UTC](https://community.temporal.io/t/schedule-workflows-that-communicate-through-temporal-signals/18605/3 "2025-10-29T01:20:02Z")

</div>

Thank you for the response @antonio.perez . To answer your question, yes, workflow A is required to be scheduled, as well as workflow B. I want it to be scheduled with Temporal native method. Hence, both need to be triggered by the scheduler. I will take a look your alternative answer and update if its working.

---

<div class="post-metadata">

**Author:** ![antonio.perez](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/antonio.perez/32/2417_2.png) [@antonio.perez](https://community.temporal.io/u/antonio.perez)\
**Post date:** [October 29, 2025, 6:21pm UTC](https://community.temporal.io/t/schedule-workflows-that-communicate-through-temporal-signals/18605/4 "2025-10-29T18:21:14Z")

</div>

Thanks for the update,

I guess my approach can only work if A has a static workflowId (initiated by a workflow client, not a scheduler)

---

<div class="post-metadata">

**Author:** ![ammar-deriv](https://avatars.discourse-cdn.com/v4/letter/a/43a26b/32.png) [@ammar-deriv](https://community.temporal.io/u/ammar-deriv)\
**Post date:** [December 4, 2025, 10:05am UTC](https://community.temporal.io/t/schedule-workflows-that-communicate-through-temporal-signals/18605/5 "2025-12-04T10:05:37Z")

</div>

Yeah probably. I change my strategy by scheduling my final endpoint instead of scheduling the workflow itself. I saw this issue is still not solve in the Issue since 2023. There is no option to not have timestamp appended to schedule workflow. I hope Temporal team can work on this. Thank you.

---

<div class="post-metadata">

**Author:** ![tihomir](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/tihomir/32/6580_2.png) [@tihomir](https://community.temporal.io/u/tihomir)\
**Post date:** [January 5, 2026, 2:48am UTC](https://community.temporal.io/t/schedule-workflows-that-communicate-through-temporal-signals/18605/6 "2026-01-05T02:48:29Z")

</div>

> [@antonio.perez](#):
>
> for now you will need to use an activity/local activity to get the last workflow id started by the schedule.

> I saw this issue is still not solve in the Issue since 2023.

Just to add as reference, typical recommendations is for scheduled workflows to start a child workflow with a static workflow id that you can reference in clients when sending signals
