Sometimes, there's a slow day, and I'll have the time to tackle something more complex (the half-day or all-day tasks that were mentioned). Then there are all kinds of time slices I may have to fill, 30 minutes to lunch, the hour until a meeting, ten minutes until I have to catch the bus. I just keep a todo list with tasks ordered by estimated complexity. This includes e-mail responses, reading that article you always wanted to read, updating the internal Wiki, writing documentation, do Jira task housekeeping, checking out stuff from the repository and so on. I forget those things easily so I keep a list.
Meetings usually don't come as a surprise, and there aren't too many (good project management makes sure that is the case). Having them at the beginning or end of the day (as suggested) is the obvious thing to do. Then there are surprise items where you have to drop everything and take care of them, so it's not always the fault of meetings (don't you ever get "hot issues" from customers that support couldn't handle and that have to be solved right now?). Plus, there's multitasking. Obviously you won't stare at the screen waiting for make veryclean to finish. In a nutshell, prepare for a day that may contain unexpected tasks of uncertain lengths. If you didn't need time management until now, consider yourself lucky.