diff --git a/app/src/main/java/org/futo/circles/subscriptions/IsoPeriod.kt b/app/src/main/java/org/futo/circles/subscriptions/IsoPeriod.kt
new file mode 100644
index 0000000000000000000000000000000000000000..d9f9b2fb60d866a631034241bb1ec8e0a2cb84a0
--- /dev/null
+++ b/app/src/main/java/org/futo/circles/subscriptions/IsoPeriod.kt
@@ -0,0 +1,22 @@
+package org.futo.circles.subscriptions
+
+import android.content.Context
+import org.futo.circles.R
+
+fun String.formatIsoPeriod(context: Context): String = toDurationNumberPairs()
+    .joinToString(separator = " ") { (number, duration) ->
+        context.resources.getQuantityString(
+            when (duration) {
+                "D" -> R.plurals.days
+                "W" -> R.plurals.weeks
+                "M" -> R.plurals.months
+                "Y" -> R.plurals.years
+
+                else -> R.plurals.days
+            }, number, number
+        )
+    }
+
+private fun String.toDurationNumberPairs() = removePrefix("P")
+    .chunked(2)
+    .map { it[0].toString().toInt() to it[1].toString() }
\ No newline at end of file