In a scenario where a smart contract needs to check against a third party service (Let's say an API with weather information from a trusted source like Weather.com) and make a decision on moving tokens or some such action based on the results for a specific date/time (for example a refund if there is rain during a scheduled cruise) - Can this all be written from within the smart contract and scheduled as well? If so how would you go about calling an API and scheduling when that call would be made?
I'm not sure but I think that's the purpose of Inbound Oracles to write data on the chain.
You should develop an application that reads data from somewhere and input to your smart contract
weather table. And then you can always read from it inside your contracts much faster without spending cpu bandwith...
The problem is that you would need the storage for these weather data.