We present a solution to the problem of fairly planning a fleet of Unmanned Aerial Vehicles (UAVs) that have different missions and operators, such that no one operator unfairly gets to finish its missions early at the expense of others - unless this was explicitly negotiated. When hundreds of UAVs share an urban airspace, the relevant authorities should allocate corridors to them such that they complete their missions, but no one vehicle is accidentally given an exceptionally fast path at the expense of another, which is thus forced to wait and waste energy. Our solution, FairFly, addresses the fair planning question for general autonomous systems, including UAV fleets, subject to complex missions typical of urban applications. FairFly formalizes each mission in temporal logic. An offline search finds the fairest paths that satisfy the missions and can be flown by the UAVs, leading to lighter online control load. It allows explicit negotiation between UAVs to enable imbalanced path durations if desired. We present three fairness notions, including one that reduces energy consumption. We validate our results in simulation, and demonstrate a lighter computational load and less UAV energy consumption as a result of flying fair trajectories.