{
    "i18n": true,
    "type": "tabs",
    "tabsStyle": {
        "width": "calc(100% - 100px)"
    },
    "iconPosition": "top",
    "items": {
        "_options": {
            "type": "panel",
            "label": "options",
            "icon": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj48IS0tISBGb250IEF3ZXNvbWUgUHJvIDYuNC4yIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlIChDb21tZXJjaWFsIExpY2Vuc2UpIENvcHlyaWdodCAyMDIzIEZvbnRpY29ucywgSW5jLiAtLT48cGF0aCBkPSJNNDk1LjkgMTY2LjZjMy4yIDguNyAuNSAxOC40LTYuNCAyNC42bC00My4zIDM5LjRjMS4xIDguMyAxLjcgMTYuOCAxLjcgMjUuNHMtLjYgMTcuMS0xLjcgMjUuNGw0My4zIDM5LjRjNi45IDYuMiA5LjYgMTUuOSA2LjQgMjQuNmMtNC40IDExLjktOS43IDIzLjMtMTUuOCAzNC4zbC00LjcgOC4xYy02LjYgMTEtMTQgMjEuNC0yMi4xIDMxLjJjLTUuOSA3LjItMTUuNyA5LjYtMjQuNSA2LjhsLTU1LjctMTcuN2MtMTMuNCAxMC4zLTI4LjIgMTguOS00NCAyNS40bC0xMi41IDU3LjFjLTIgOS4xLTkgMTYuMy0xOC4yIDE3LjhjLTEzLjggMi4zLTI4IDMuNS00Mi41IDMuNXMtMjguNy0xLjItNDIuNS0zLjVjLTkuMi0xLjUtMTYuMi04LjctMTguMi0xNy44bC0xMi41LTU3LjFjLTE1LjgtNi41LTMwLjYtMTUuMS00NC0yNS40TDgzLjEgNDI1LjljLTguOCAyLjgtMTguNiAuMy0yNC41LTYuOGMtOC4xLTkuOC0xNS41LTIwLjItMjIuMS0zMS4ybC00LjctOC4xYy02LjEtMTEtMTEuNC0yMi40LTE1LjgtMzQuM2MtMy4yLTguNy0uNS0xOC40IDYuNC0yNC42bDQzLjMtMzkuNEM2NC42IDI3My4xIDY0IDI2NC42IDY0IDI1NnMuNi0xNy4xIDEuNy0yNS40TDIyLjQgMTkxLjJjLTYuOS02LjItOS42LTE1LjktNi40LTI0LjZjNC40LTExLjkgOS43LTIzLjMgMTUuOC0zNC4zbDQuNy04LjFjNi42LTExIDE0LTIxLjQgMjIuMS0zMS4yYzUuOS03LjIgMTUuNy05LjYgMjQuNS02LjhsNTUuNyAxNy43YzEzLjQtMTAuMyAyOC4yLTE4LjkgNDQtMjUuNGwxMi41LTU3LjFjMi05LjEgOS0xNi4zIDE4LjItMTcuOEMyMjcuMyAxLjIgMjQxLjUgMCAyNTYgMHMyOC43IDEuMiA0Mi41IDMuNWM5LjIgMS41IDE2LjIgOC43IDE4LjIgMTcuOGwxMi41IDU3LjFjMTUuOCA2LjUgMzAuNiAxNS4xIDQ0IDI1LjRsNTUuNy0xNy43YzguOC0yLjggMTguNi0uMyAyNC41IDYuOGM4LjEgOS44IDE1LjUgMjAuMiAyMi4xIDMxLjJsNC43IDguMWM2LjEgMTEgMTEuNCAyMi40IDE1LjggMzQuM3pNMjU2IDMzNmE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHoiLz48L3N2Zz4=",
            "items": {
                "nextTextTemplate": {
                    "newLine": true,
                    "type": "text",
                    "xs": 12,
                    "sm": 12,
                    "md": 6,
                    "lg": 6,
                    "xl": 6,
                    "label": "text template (next)",
                    "help": "use %n for name and %a for age"
                },
                "nextSeparator": {
                    "type": "text",
                    "trim": false,
                    "xs": 12,
                    "sm": 12,
                    "md": 6,
                    "lg": 6,
                    "xl": 6,
                    "label": "next separator"
                },
                "currentAgeTemplate": {
                    "newLine": true,
                    "type": "text",
                    "xs": 12,
                    "sm": 12,
                    "md": 6,
                    "lg": 6,
                    "xl": 6,
                    "label": "current age template",
                    "help": "use %y for years, %m for months and %d for days"
                },
                "_ioBrokerKursBanner": {
                    "newLine": true,
                    "type": "staticImage",
                    "xs": 12,
                    "sm": 12,
                    "md": 6,
                    "lg": 6,
                    "xl": 6,
                    "href": "https://haus-automatisierung.com/iobroker-kurs/?refid=iobroker-birthdays",
                    "src": "https://haus-automatisierung.com/images/ads/ioBroker-Kurs.png"
                }
            }
        },
        "_ical": {
            "type": "panel",
            "label": "iCal",
            "icon": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDggNTEyIj48IS0tISBGb250IEF3ZXNvbWUgUHJvIDYuNC4yIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlIChDb21tZXJjaWFsIExpY2Vuc2UpIENvcHlyaWdodCAyMDIzIEZvbnRpY29ucywgSW5jLiAtLT48cGF0aCBkPSJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNjRIMjg4VjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJWNjRoNDhjMjYuNSAwIDQ4IDIxLjUgNDggNDh2NDhIMFYxMTJDMCA4NS41IDIxLjUgNjQgNDggNjRIOTZWMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTAgMTkySDQ0OFY0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjE5MnptNjQgODB2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYyNzJjMC04LjgtNy4yLTE2LTE2LTE2SDgwYy04LjggMC0xNiA3LjItMTYgMTZ6bTEyOCAwdjMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMjcyYzAtOC44LTcuMi0xNi0xNi0xNkgyMDhjLTguOCAwLTE2IDcuMi0xNiAxNnptMTQ0LTE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYyNzJjMC04LjgtNy4yLTE2LTE2LTE2SDMzNnpNNjQgNDAwdjMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWNDAwYzAtOC44LTcuMi0xNi0xNi0xNkg4MGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNDQtMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjQwMGMwLTguOC03LjItMTYtMTYtMTZIMjA4em0xMTIgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlY0MDBjMC04LjgtNy4yLTE2LTE2LTE2SDMzNmMtOC44IDAtMTYgNy4yLTE2IDE2eiIvPjwvc3ZnPg==",
            "items": {
                "icalUrl": {
                    "type": "text",
                    "xs": 12,
                    "sm": 12,
                    "md": 12,
                    "lg": 12,
                    "xl": 12,
                    "label": "ical url or path"
                },
                "icalUser": {
                    "newLine": true,
                    "type": "text",
                    "xs": 12,
                    "sm": 12,
                    "md": 6,
                    "lg": 6,
                    "xl": 6,
                    "label": "ical username"
                },
                "icalPassword": {
                    "type": "password",
                    "repeat": false,
                    "visible": false,
                    "xs": 12,
                    "sm": 12,
                    "md": 6,
                    "lg": 6,
                    "xl": 6,
                    "label": "ical password"
                },
                "icalUrlIgnoreCertErrors": {
                    "newLine": true,
                    "type": "checkbox",
                    "xs": 12,
                    "sm": 12,
                    "md": 6,
                    "lg": 6,
                    "xl": 6,
                    "label": "ignore certificate errors"
                },
                "icalFile": {
                    "newLine": true,
                    "type": "fileSelector",
                    "pattern": "*.ics",
                    "objectID": "birthdays.%INSTANCE%",
                    "upload": "/",
                    "refresh": true,
                    "withFolder": true,
                    "noNone": false,
                    "xs": 12,
                    "sm": 12,
                    "md": 6,
                    "lg": 6,
                    "xl": 6,
                    "label": "upload files"
                }
            }
        },
        "_carddav": {
            "type": "panel",
            "label": "CardDAV",
            "icon": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDggNTEyIj48IS0tISBGb250IEF3ZXNvbWUgUHJvIDYuNC4yIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlIChDb21tZXJjaWFsIExpY2Vuc2UpIENvcHlyaWdodCAyMDIzIEZvbnRpY29ucywgSW5jLiAtLT48cGF0aCBkPSJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNjRIMjg4VjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJWNjRoNDhjMjYuNSAwIDQ4IDIxLjUgNDggNDh2NDhIMFYxMTJDMCA4NS41IDIxLjUgNjQgNDggNjRIOTZWMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTAgMTkySDQ0OFY0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjE5MnptNjQgODB2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYyNzJjMC04LjgtNy4yLTE2LTE2LTE2SDgwYy04LjggMC0xNiA3LjItMTYgMTZ6bTEyOCAwdjMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMjcyYzAtOC44LTcuMi0xNi0xNi0xNkgyMDhjLTguOCAwLTE2IDcuMi0xNiAxNnptMTQ0LTE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYyNzJjMC04LjgtNy4yLTE2LTE2LTE2SDMzNnpNNjQgNDAwdjMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWNDAwYzAtOC44LTcuMi0xNi0xNi0xNkg4MGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNDQtMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjQwMGMwLTguOC03LjItMTYtMTYtMTZIMjA4em0xMTIgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlY0MDBjMC04LjgtNy4yLTE2LTE2LTE2SDMzNmMtOC44IDAtMTYgNy4yLTE2IDE2eiIvPjwvc3ZnPg==",
            "items": {
                "carddavUrl": {
                    "type": "text",
                    "xs": 12,
                    "sm": 12,
                    "md": 12,
                    "lg": 12,
                    "xl": 12,
                    "label": "carddav url"
                },
                "carddavUser": {
                    "newLine": true,
                    "type": "text",
                    "xs": 12,
                    "sm": 12,
                    "md": 6,
                    "lg": 6,
                    "xl": 6,
                    "label": "carddav username"
                },
                "carddavPassword": {
                    "type": "password",
                    "repeat": false,
                    "visible": false,
                    "xs": 12,
                    "sm": 12,
                    "md": 6,
                    "lg": 6,
                    "xl": 6,
                    "label": "carddav password"
                },
                "carddavIgnoreCertErrors": {
                    "newLine": true,
                    "type": "checkbox",
                    "xs": 12,
                    "sm": 12,
                    "md": 6,
                    "lg": 6,
                    "xl": 6,
                    "label": "ignore certificate errors"
                }
            }
        },
        "_advanced": {
            "type": "panel",
            "label": "birthdays",
            "icon": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDggNTEyIj48IS0tISBGb250IEF3ZXNvbWUgUHJvIDYuNC4yIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlIChDb21tZXJjaWFsIExpY2Vuc2UpIENvcHlyaWdodCAyMDIzIEZvbnRpY29ucywgSW5jLiAtLT48cGF0aCBkPSJNODYuNCA1LjVMNjEuOCA0Ny42QzU4IDU0LjEgNTYgNjEuNiA1NiA2OS4yVjcyYzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBWNjkuMmMwLTcuNi0yLTE1LTUuOC0yMS42TDEwNS42IDUuNUMxMDMuNiAyLjEgMTAwIDAgOTYgMHMtNy42IDIuMS05LjYgNS41em0xMjggMEwxODkuOCA0Ny42Yy0zLjggNi41LTUuOCAxNC01LjggMjEuNlY3MmMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwVjY5LjJjMC03LjYtMi0xNS01LjgtMjEuNkwyMzMuNiA1LjVDMjMxLjYgMi4xIDIyOCAwIDIyNCAwcy03LjYgMi4xLTkuNiA1LjV6TTMxNy44IDQ3LjZjLTMuOCA2LjUtNS44IDE0LTUuOCAyMS42VjcyYzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBWNjkuMmMwLTcuNi0yLTE1LTUuOC0yMS42TDM2MS42IDUuNUMzNTkuNiAyLjEgMzU2IDAgMzUyIDBzLTcuNiAyLjEtOS42IDUuNUwzMTcuOCA0Ny42ek0xMjggMTc2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMydjQ4Yy0zNS4zIDAtNjQgMjguNy02NCA2NHY3MWM4LjMgNS4yIDE4LjEgOSAyOC44IDljMTMuNSAwIDI3LjItNi4xIDM4LjQtMTMuNGM1LjQtMy41IDkuOS03LjEgMTMtOS43YzEuNS0xLjMgMi43LTIuNCAzLjUtMy4xYy40LS40IC43LS42IC44LS44bC4xLS4xIDAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwYzMuMS0zLjIgNy40LTQuOSAxMS45LTQuOHM4LjYgMi4xIDExLjYgNS40bDAgMCAwIDAgLjEgLjFjLjEgLjEgLjQgLjQgLjcgLjdjLjcgLjcgMS43IDEuNyAzLjEgM2MyLjggMi42IDYuOCA2LjEgMTEuOCA5LjVjMTAuMiA3LjEgMjMgMTMuMSAzNi4zIDEzLjFzMjYuMS02IDM2LjMtMTMuMWM1LTMuNSA5LTYuOSAxMS44LTkuNWMxLjQtMS4zIDIuNC0yLjMgMy4xLTNjLjMtLjMgLjYtLjYgLjctLjdsLjEtLjFjMy0zLjUgNy40LTUuNCAxMi01LjRzOSAyIDEyIDUuNGwuMSAuMWMuMSAuMSAuNCAuNCAuNyAuN2MuNyAuNyAxLjcgMS43IDMuMSAzYzIuOCAyLjYgNi44IDYuMSAxMS44IDkuNWMxMC4yIDcuMSAyMyAxMy4xIDM2LjMgMTMuMXMyNi4xLTYgMzYuMy0xMy4xYzUtMy41IDktNi45IDExLjgtOS41YzEuNC0xLjMgMi40LTIuMyAzLjEtM2MuMy0uMyAuNi0uNiAuNy0uN2wuMS0uMWMyLjktMy40IDcuMS01LjMgMTEuNi01LjRzOC43IDEuNiAxMS45IDQuOGwwIDAgMCAwIDAgMCAuMSAuMWMuMiAuMiAuNCAuNCAuOCAuOGMuOCAuNyAxLjkgMS44IDMuNSAzLjFjMy4xIDIuNiA3LjUgNi4yIDEzIDkuN2MxMS4yIDcuMyAyNC45IDEzLjQgMzguNCAxMy40YzEwLjcgMCAyMC41LTMuOSAyOC44LTlWMjg4YzAtMzUuMy0yOC43LTY0LTY0LTY0VjE3NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnY0OEgyNTZWMTc2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMydjQ4SDEyOFYxNzZ6TTQ0OCAzOTQuNmMtOC41IDMuMy0xOC4yIDUuNC0yOC44IDUuNGMtMjIuNSAwLTQyLjQtOS45LTU1LjgtMTguNmMtNC4xLTIuNy03LjgtNS40LTEwLjktNy44Yy0yLjggMi40LTYuMSA1LTkuOCA3LjVDMzI5LjggMzkwIDMxMC42IDQwMCAyODggNDAwcy00MS44LTEwLTU0LjYtMTguOWMtMy41LTIuNC02LjctNC45LTkuNC03LjJjLTIuNyAyLjMtNS45IDQuNy05LjQgNy4yQzIwMS44IDM5MCAxODIuNiA0MDAgMTYwIDQwMHMtNDEuOC0xMC01NC42LTE4LjljLTMuNy0yLjYtNy01LjItOS44LTcuNWMtMy4xIDIuNC02LjggNS4xLTEwLjkgNy44QzcxLjIgMzkwLjEgNTEuMyA0MDAgMjguOCA0MDBjLTEwLjYgMC0yMC4zLTIuMi0yOC44LTUuNFY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJINDE2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM5NC42eiIvPjwvc3ZnPg==",
            "items": {
                "birthdays": {
                    "type": "table",
                    "xs": 12,
                    "sm": 12,
                    "md": 12,
                    "lg": 12,
                    "xl": 12,
                    "label": "birthdays",
                    "items": [
                        {
                            "type": "text",
                            "attr": "name",
                            "width": "55%",
                            "title": {
                                "en": "Name",
                                "de": "Name",
                                "ru": "Имя",
                                "pt": "Nome",
                                "nl": "Naam",
                                "fr": "Nom",
                                "it": "Nome",
                                "es": "Nombre",
                                "pl": "Nazwa",
                                "uk": "Ім'я",
                                "zh-cn": "姓名"
                            },
                            "filter": true,
                            "sort": true,
                            "default": ""
                        },
                        {
                            "type": "number",
                            "attr": "day",
                            "min": 1,
                            "max": 31,
                            "width": "15%",
                            "title": {
                                "en": "Day",
                                "de": "Tag",
                                "ru": "День",
                                "pt": "Dia",
                                "nl": "Dag",
                                "fr": "Jour",
                                "it": "Giorno",
                                "es": "Día",
                                "pl": "Dzień",
                                "uk": "День народження",
                                "zh-cn": "日"
                            },
                            "filter": false,
                            "sort": false,
                            "default": 1
                        },
                        {
                            "type": "number",
                            "attr": "month",
                            "min": 1,
                            "max": 12,
                            "width": "15%",
                            "title": {
                                "en": "Month",
                                "de": "Monat",
                                "ru": "Месяц",
                                "pt": "Mês",
                                "nl": "Maand",
                                "fr": "Mois",
                                "it": "Mese",
                                "es": "Mes",
                                "pl": "Miesiąc",
                                "uk": "Місяць",
                                "zh-cn": "月"
                            },
                            "filter": false,
                            "sort": false,
                            "default": 1
                        },
                        {
                            "type": "number",
                            "attr": "year",
                            "min": 1900,
                            "max": 2100,
                            "width": "15%",
                            "title": {
                                "en": "Year",
                                "de": "Jahr",
                                "ru": "Год",
                                "pt": "Ano",
                                "nl": "Jaar",
                                "fr": "Année",
                                "it": "Anno",
                                "es": "Año",
                                "pl": "Rok",
                                "uk": "Рік",
                                "zh-cn": "年"
                            },
                            "filter": false,
                            "sort": false,
                            "default": 2000
                        }
                    ]
                }
            }
        }
    }
}