To keep track of an item and its database operations, the item will have to be identified first. A scheduling event, for example, could move to a different time and get a different description. This makes synchronization an almost impossible task.
The solution to this problem is very simple: Have at least one field that never changes. This field would uniquely identify an entry and is therefore called Unique IDentifier (UID).
A UID is assigned to an item upon its creation. The UID must not be used again until this particular item has been deleted from all databases.
Unfortunately, different clients might have assigned the same UID to different entries or an entry might have been assigned different UIDs by different clients. Thus we must distinguish between local UIDs (LUID) and global UIDs (GUID).
A local UID is valid on one particular client. This client knows only about its own local UIDs and uses them for synchronization.
A global UID is basically a local UID for a server. The difference here is that the server tries to assign this own UID to as many clients as possible. Since this is not always possible, the server has to keep a translation map between its own GUIDs and the clients LUIDs.