npc
-> gives storage (os.time() + 24 hours in seconds)
-> teleports
Then you can make an onThink event, or a looping addEvent for every 1 minute / 30 seconds
In whichever function you decide, you just check to see if the current time is greater then the players storage, at which point you teleport them back off the island to the npc.
In case the player logs out (manual/death), add a onLogin, which starts the onThink/addEvent again for the player.
If the player wants to leave early, reset their storage.. and teleport them out.
or allow them access to the area for the whole 24 hours in/out.. but only teleport them away from the island, if they are currently on it, when the timer elapses. (so do a position check, against the area.)