Mikrotik Hotspot user config

Hello Everyone!
In the Mikrotik hotspot, I would like to set up a 1-day, 2-day, 3-day and 7-day voucher.
For these, e.g. 100 users can join.
How to set it up?
Thank you very much!

check the “Shared User” Setting in the Hotspot Profile.

Means how often the User can log in with this Voucher Code.

Example: Shared User 5
Than u can use the code for 5 devices at the same time.


But how to disable the user after 1day or 2 days im not sure how to set up this.

Greetings nextplx

i tried it a long time ago with an script with this:

:local profileName "1-Tag-Gast"
:local maxUptime 1440  # 1440 Minuten = 24 Stunden

:foreach i in=[/ip hotspot user find where profile=$profileName] do={
    :local userName [/ip hotspot user get $i name]
    :local userUptime [/ip hotspot user get $i uptime]

    # Initialisiere Variablen
    :local weeks 0
    :local days 0
    :local hours 0
    :local minutes 0

    # Debug: Ausgabe der aktuellen Uptime des Benutzers
    :log info ("Benutzer: " . $userName . ", Uptime: " . $userUptime)

    # Überprüfe, ob Wochen in der Uptime vorhanden sind
    :if ([:find $userUptime "w"] != -1) do={
        :set weeks [:tonum [:pick $userUptime 0 [:find $userUptime "w"]]]
        :set userUptime [:pick $userUptime ([:find $userUptime "w"] + 1) [:len $userUptime]]
    }

    # Überprüfe, ob Tage in der Uptime vorhanden sind
    :if ([:find $userUptime "d"] != -1) do={
        :set days [:tonum [:pick $userUptime 0 [:find $userUptime "d"]]]
        :set userUptime [:pick $userUptime ([:find $userUptime "d"] + 1) [:len $userUptime]]
    }

    # Überprüfe, ob Stunden in der Uptime vorhanden sind
    :if ([:find $userUptime "h"] != -1) do={
        :set hours [:tonum [:pick $userUptime 0 [:find $userUptime "h"]]]
        :set userUptime [:pick $userUptime ([:find $userUptime "h"] + 1) [:len $userUptime]]
    }

    # Überprüfe, ob Minuten in der Uptime vorhanden sind
    :if ([:find $userUptime "m"] != -1) do={
        :set minutes [:tonum [:pick $userUptime 0 [:find $userUptime "m"]]]
    }

    # Berechne die gesamte Uptime in Minuten
    :local uptimeMinutes ($weeks * 10080 + $days * 1440 + $hours * 60 + $minutes)

    # Debug: Ausgabe der berechneten Uptime in Minuten
    :log info ("Benutzer: " . $userName . ", Uptime in Minuten: " . $uptimeMinutes)

    # Prüfe, ob die Uptime größer als 1440 Minuten (24 Stunden) ist
    :if ($uptimeMinutes > $maxUptime) do={
        # Debug: Benutzer wird gelöscht
        :log info ("Lösche Benutzer: " . $userName . " aufgrund überschrittener Uptime.")
        
        # Lösche den Benutzer
        /ip hotspot user remove $i
        # Entferne den Benutzer aus der aktiven Hotspot-Liste, falls aktiv
        /ip hotspot active remove [find where user=$userName]
    }
}

But i never found a solution.
So still i´m having voucher only for 1day who are having an uptime from more than 1day


best would be if i can setup something like “only today” or “only for the day when first login” but didnt find anything …

you find everything ready in usermanager on routers 7