Why is "До" sometimes said as "da" (in 'До скорого') but sometimes as "do" (as in 'до свидания'). Is there a rule?
The two-degree vowel reduction model ignores word boundaries for prepositions. In до ско́рого, the preposition is treated as a pre-emphatic syllable, and so becomes [dɐ]; in до свида́ния, it's a plain unstressed syllable, hence [də].
It can carry stress, ['do], when semantically emphasised: факты надо было проверять до публикации "[you] should've fact-checked before publishing".
The rule is simple - unstressed
o in modern Russian is not pronounced as [o] but rather as [a] or [ɐ] or [ə] - well, roughly speaking as "a". It's a special case of vowel reduction in Russian and this special case even has a separate name - it's called "аканье".
The other answers provided gave a nice overview of when it can still be pronounced closer to "до" - but it will be an excusable simplification - at least for beginners - to stick to "o" -> "a" rule.
До is pronounced exactly the same in 'до ско́рого' and 'до свида́ния'. As @Nikolay_Ershov already mentioned, prepositions are normally treated as part of the following word, as far as stress and vowel reduction are concerned.
However, in a deliberately slow and clear speech (as that of a teacher) prepositions can be singled out and bear stress of their own: до́ свида́ния. Then до will sound like the stressed [do] and not a reduced [də].