The command to aid you in this particular goal is none other than the /worldborder command. You can modify, set, shrink, or expand the border. Here is the usage:
/worldborder <set|center|damage|warning|get> ...
Here, we'll be focusing on the set parameter. Let's expand on that usage:
/worldborder set [timeInSeconds]
First, we want to set our original size of the border, which would traditionally be the smallest. From there, it would expand. To do this, we must first determine the center. There, we'll use the center parameter of the command. The center is the middle of the area where your starting region is. Normally, you would set it to the spawnpoint, or a more recognizable area, coordinates 0,0.
Whereas, x and z are the coordinates of your designated center of starting point.
The command that centers the border at 0,0:
/worldborder center 0 0
Now, we're ready to form the starting point. SizeInBlocks is the diameter of the world border. For example, if the center is 0, 0, and the size in blocks is 2000, the border expands from -1000 to 1000. If you were to want a starting area that is 500x500, then the correct SizeInBlocks would be 500, which would stretch from -250 to 250, assuming the center is 0,0. That'll be the example for now, you can always change it to whatever you'd like. TimeInSeconds won't be touched yet.
/worldborder set 500If you were to visit the edge of the border, you would see that the border indeed stretches from -250 to 250.
We're not done yet. So far, we've created a stationary world border, it doesn't move yet. For that, we'll need another command that finally initiates the expanding process. TimeInSeconds refers to how much time, in seconds, it would take for the world border to expand into the new diameter that was set, which is set for the final region. It may sound confusing, but it's quite easy to understand. For this command, you'll be starting the world border expansion into the bigger version. For example, if you're original diameter was 500, you would probably want the new one to be twice as large, like 1000. 1000 would be your ending point, your 'new' diameter for the 'final' region.
This would work fine, but it'll instantly move the border. We don't want immediate change, we want gradual change.
Don't use this command: /worldborder set 1000
To do that, we now determine how many seconds the border would take to get to that new diameter. 60 seconds implies a minute before it reaches the new diameter, but that's far too quick. We want something like, 5 hours per block. We then calculate how much total time it would take for the border to progress a block every 5 hours.
First of all, the border is a square. Radius is half of the diameter, so the border's starting radius is 250. The border's new radius would be 500. We want to focus on the radius, as the diameter would count as two blocks, in which we only want to work with one every 5 hours. We get the difference between the old and new radius, which is evidently 250. Now we know the border must progress at 5 hours a block, for 250 blocks of change in each direction.
Now, we need to get the basic time required for the world border to advance a single block. 60 seconds in a minute, 60 minutes and an hour. So 60*60*5=18,000 seconds per block. Then, we multiply that with the difference we received earlier. 18,000*250=4,500,000 total seconds to reach the new diameter. That's quite a long time isn't it? So, how much time would it take in total to reach the new diameter? 4,500,000 seconds makes 75,000 minutes, which makes 1,250 hours, which makes 52 days and 2 hours, which makes 7 weeks, 3 days, and 2 hours, which makes 1 month, 3 weeks, 3 days, and 2 hours, assuming the server is on 24/7 during that period.
Over a month of gradual change for a diameter of change of 500 to 1000. From a range of -250 to 250, to -500 to 500. So, the command for this is quite simple, I wouldn't be surprised if you haven't figured it out yet. Make sure to initiate this as soon as you want the border to start expanding ever-so-slowly.
Try to figure out the command for yourself, if you cannot yet, feel free to open the spoiler below.
That is all, hope I helped!
/worldborder set 1000 4500000