[exec.schedule] # 33 Execution control library [[exec]](./#exec) ## 33.9 Senders [[exec.snd]](exec.snd#exec.schedule) ### 33.9.11 Sender factories [[exec.factories]](exec.factories#exec.schedule) #### 33.9.11.1 execution​::​schedule [exec.schedule] [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/exec.tex#L2877) schedule obtains a schedule sender ([[exec.async.ops]](exec.async.ops "33.3 Asynchronous operations")) from a scheduler[.](#1.sentence-1) [2](#2) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/exec.tex#L2881) The name schedule denotes a customization point object[.](#2.sentence-1) For a subexpression sch, the expression schedule(sch) is expression-equivalent tosch.schedule()[.](#2.sentence-2) [3](#3) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/exec.tex#L2887) *Mandates*: The type of sch.schedule() satisfies [sender](exec.snd.concepts#concept:sender "33.9.3 Sender concepts [exec.snd.concepts]")[.](#3.sentence-1) [4](#4) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/exec.tex#L2891) If the expressionget_completion_scheduler(get_env(sch.schedule())) == sch is ill-formed or evaluates to false, the behavior of calling schedule(sch) is undefined[.](#4.sentence-1)