1. A method comprising: by a computing device of a user, in response to data to be sent to or from the computing device, determining an amount of bandwidth currently available to the computing device for the data; by the computing device, accessing a behavior profile of the user that comprises one or more first probability values, wherein each of the first probability values corresponds to a particular time interval within a time period and indicates a probability that the user will be at a location with a particular bandwidth; by the computing device, determining based at least in part on the behavior profile a second probability value for each of one or more particular future time intervals within a future time period, wherein each of the second probability values indicates, for the particular future time interval within the future time period, a probability that the user will be at a location that has higher bandwidth available than the amount of bandwidth currently available to the computing device; and scheduling all or a portion of the data to be sent to or from the computing device based at least in part on one or more of the second probability values.