diff --git a/README_ru.md b/README_ru.md
index 8f38670..74eb1d5 100644
--- a/README_ru.md
+++ b/README_ru.md
@@ -44,7 +44,7 @@ First line
Second line
# Функции управления лаунчером
* `aio:doAction(string)` - выполняет действие AIO ([подробнее](https://aiolauncher.app/api.html));
-* `aio:addWidget(string)` - добавляет на экран встроенный виджет или виджет-скрипт;
+* `aio:addWidget(string)` - добавляет на экран встроенный виджет, виджет-скрипт или клон существующего виджета;
* `aio:removeWidget(string)` - удаляет с экрана встроенный виджет или виджет-скрипт (внимание: доп. виджеты тоже будут удалены);
* `aio:isWidgetAdded(string)` - проверяет, добавлен ли виджет на экран;
* `aio:getArgs()` - возвращает таблицу аргументов, которые пользователь указал нажав на иконку настроек в режиме редактирования виджета;
diff --git a/currencies-ru-widget.lua b/currencies-ru-widget.lua
new file mode 100644
index 0000000..283d409
--- /dev/null
+++ b/currencies-ru-widget.lua
@@ -0,0 +1,58 @@
+-- name = "Курсы валют"
+-- description = "Виджет курсов валют. Нажмите на дату чтобы изменить ее."
+-- dataSource = "https://github.com/fawazahmed0/currency-api#readme"
+-- type = "widget"
+-- author = "Andrey Gavrilov"
+-- version = "1.0"
+-- argumentsHelp = "Введите список валютных пар в формате usd:rub btc:usd"
+-- argumentsDefault = "usd:rub eur:rub"
+
+stringx = require 'pl.stringx'
+
+function onAlarm()
+ curs = aio:getArgs()
+
+ if curs == nil then
+ curs = {"usd:rub", "eur:rub"}
+ end
+
+ getRates("latest")
+end
+
+function getRates(locDate)
+ net:getText("https://cdn.jsdelivr.net/gh/fawazahmed0/currency-api@1/"..locDate.."/currencies/usd.json")
+end
+
+function onNetworkResult(result)
+ local dat = json:getValue(result, "object string:date")
+ local tab = {}
+
+ table.insert(tab, ""..dat.."")
+
+ for idx = 1, #curs, 1 do
+ local equals = " = "
+ local cur = stringx.split(curs[idx], ":")
+ local cur1 = cur[1]
+ local cur2 = cur[2]
+ local rate1 = json:getValue(result, "object object:usd double:"..cur1)
+ local rate2 = json:getValue(result, "object object:usd double:"..cur2)
+ local rate = math.floor(rate2/rate1*10000+0.5)/10000
+ table.insert(tab, "1 "..string.upper(cur1)..equals..rate.." "..string.upper(cur2))
+ end
+
+ ui:showLines(tab)
+end
+
+function onClick(idx)
+ if idx == 1 then
+ ui:showEditDialog("Введите дату курсов", "Введите дату курсов в формате 2020-12-31. Пустое значение - текущая дата.")
+ end
+end
+
+function onDialogAction(text)
+ if text == "" then
+ text = "latest"
+ end
+
+ getRates(text)
+end
diff --git a/open-search-widget.lua b/open-search-widget.lua
new file mode 100644
index 0000000..545a7ca
--- /dev/null
+++ b/open-search-widget.lua
@@ -0,0 +1,9 @@
+-- name = "Search"
+
+function onResume()
+ ui:showText("Open search")
+end
+
+function onClick()
+ aio:doAction("search")
+end