By default, only active, hourly contracts will appear in your list for time-tracking purposes (this can be changed in the desktop app’s advanced settings). You can check your contract status here. If the contract is paused, has ended, or hasn’t started yet, you can’t log time to it. If the start date is in the future, it will activate that day at UTC 00:00 (not your local time).
If the contract is active but still isn’t available in the app, it most likely recently changed status. You can force a refresh of your contract list by clicking on the refresh icon in the Upwork desktop app.