Like SysTime and friends, Interval should have fromISOString and toISOString methods.
The start+end start+duration forms can be parsed into an Interval without much trouble, but the duration+end form may require additional effort. The duration-only form would require additional methods to supply the necessary context.
Note that an ISO8601 duration is a superset of core.time.Duration. We're able to parse it into a Duration in this context, but that cannot be done in the general case.
Related: dlang/dmd#22491