I'm trying to generate a bell system relying on a table.. I feel like there's an easier method of checking what time its on, and using it to check what period its on. So far, here is my results.

PSchedules={
	{"TESTBLOCK",{
	--	name			time start	time end
		{"Period 1",	10,41,		10,43},
		{"Period 2",	10,45,		10,46},
		{"Period 3",	10,47,		10,49},
		{"Period 4",	10,50,		10,51}
	}}
}
require game.ServerScriptStorage.GetTime; --returns a function that gives back my current time in this format (return hour,min,sec,amORpm)
function StartBell(schedu)
	local bellloop=true
	local schn=tonumber(schedu)
	if schn~=nil then
		local hours,mins,secs,pm=GetTime()
		local checkloop=1
		local isonperiod=false
		for a=1,#PSchedules[schn][2] do
			print(hours,PSchedules[schn][2][a][2])
			if hours>=PSchedules[schn][2][a][2] then 
				if mins>=PSchedules[schn][2][a][3] then
					print("passd "..schn,a)
					checkloop=a
				end 
			end 
		end 
		if hours <= PSchedules[schn][2][checkloop][4] then
			if mins < PSchedules[schn][2][checkloop][5] then
				isonperiod=true
			end
		end 
		repeat
			hours,mins,secs,pm=GetTime()
			local remainmins=0
			isonperiod=false
			if hours <= PSchedules[schn][2][checkloop][4] then
				if mins < PSchedules[schn][2][checkloop][5] then
					if hours > PSchedules[schn][2][checkloop][2] then
						if mins >= PSchedules[schn][2][checkloop][3] then
							isonperiod=true
						end
					end 
				end 
			end 
			if isonperiod==true then
				print("Is On Period..")
				remainmins=0
				if hours < PSchedules[schn][2][checkloop][4] then
					remainmins=PSchedules[schn][2][checkloop][4]-hours
					remainmins=remainmins*60
					print("Added "..remainmins".. to remaining time..")
				end 
				if PSchedules[schn][2][checkloop][5] > mins then
					remainmins=remainmins+PSchedules[schn][2][checkloop][5]-mins
				end
				print("Remaining Time set to "..remainmins)
			else
				print("Is Not On Period..")
				if PSchedules[schn][2][checkloop]==nil then
					bellloop=false
					print("The bell could NOT find the next loop and died..")
				else
					if PSchedules[schn][2][checkloop][2]==hours then
						if PSchedules[schn][2][checkloop][3]<mins then
							checkloop=checkloop+1
							print("Added to next wait loop")
						end
					end
					if PSchedules[schn][2][checkloop][2]==hours then
						print("Waiting Till Next Period..")
						remainmins=0
						if hours < PSchedules[schn][2][checkloop][2] then
							remainmins=PSchedules[schn][2][checkloop][2]-hours
							remainmins=remainmins*60
						end 
						if PSchedules[schn][2][checkloop][5] > mins then
							remainmins=remainmins+PSchedules[schn][2][checkloop][3]-mins
						end
					end
				end 
			end 
			print("CurrentTime: "..hours..":"..mins)
			print("NextPeriodBeforeTime: "..PSchedules[schn][2][checkloop][2]..":"..PSchedules[schn][2][checkloop][3])
			print("NextPeriodAfterTime: "..PSchedules[schn][2][checkloop][4]..":"..PSchedules[schn][2][checkloop][5])
			print("RemainingMinutes: "..remainmins)
			print("CurrentSchedule: "..PSchedules[schn][1])
			print("CurrentPeriod: "..PSchedules[schn][2][checkloop][1])
			print("Is it that period?: "..(isonperiod and "true" or "false"))
			print("----------------------------------")
			wait(2)
		until bellloop==false
	end
	print("TheBellDied..")
	bellloop=false
end 
StartBell(1)

Am I going overboard on how to check for this information, or is their an easier way?