This example illustrates yet another case of two databases working together. It also shows how one might access one of the built-in soups (the calendar, in this case) from within Leverage. The two Leverage databases are contacts, a straightforward name and address database with additional fields to keep track of tasks associated with the contact, and tasks, the database that makes the connection between tasks (e.g., what do I do after I send a demo to the contact?) Enter a contact and choose an item for the to do field, fax, say (meaning we need to fax this contact some information). Tap the done field (changing it to true) and several things happen: 1. the fax task is looked up in the tasks database, to see what the past tense of fax is and to see what comes next 2. the fax is logged by adding it to the note field 3. the to do field is changed to the next thing to do according to the tasks database (call, in this case) 4. the done field is changed back to false, since we're not really done yet. If the item to be done for the contact is one that it makes sense to schedule (meet or call, for example), enter a date in the when field and a time in the time field (unfortunately, Leverage doesn't support time fields yet, so we make do with a real number field for the moment -- enter 8:30am as 8.5 and 2:45pm as 14.75). Once the date and time fields are set, tap the scheduled field, changing it to true. Leverage enters an appointment in the calendar at the indicated date and time. The text of the appointment is the to do item followed by the contact name (e.g., call Cecil Albrecht). Here is the code attached to the scheduled field that makes the appointment: if not e.scheduled or not e.when then return nil; local cs := getunionSoup("calendar"); cs:AddToDefaultStore( {viewStationery: 'meeting, mtgStartDate: (e.when div 1440)*1440 + rinttol(e.time*60), mtgDuration: 60, mtgText: e.|to do| && e.name, viewBounds: nil}); cs := nil; The rigamarole with the startdate first removes any time from the when field (making it midnight at the beginning of the requested day) and then adds the requested time to the result so the appointment will be at the right time on the right day.