# IDataSource.Import()

Description:

The `Import` method imports entries into a calendar. The information must be imported from an iCal or vCal file. For more information about these two formats, see the Calendar Service overview page.

This method can be called both synchronously and asynchronously.

Syntax:

For synchronous calls:

    result = so.IDataSource.Import(criteria);

For asynchronous calls:

    result = so.IDataSource.Import(criteria, callback);

Arguments:

- `criteria`:

  This is an object that specifies the calendar entries to import and optionally the target calendar. For more information about the object properties and how to define them, see section Criteria for importing calendar entries.

- `callback`:

  The `callback` argument is the name of the method that is executed when an asynchronous `Import` call has results or status information to return. You must define this method separately. Follow the instructions in section Defining the callback handler for an asynchronous method to define the `callback` method.

  This argument is used only with an asynchronous `Import` call.

Return value:

If synchronous, the `Import` method returns an object that contains a list of the imported calendar entries, an error code, and an error message.

Table: Return value properties for a synchronous Import
Property | Description | Value
--- | --- | ---
`result.ReturnValue` | This is an iterator that contains an ordered list of objects. The objects contain the `id`s (strings) of the entries that were successfully imported to the calendar. The same `id` may be repeated multiple times in case of child entries. |
`result.ErrorCode` | This is a number that specifies a predefined error code. | See Service API error codes.
`result.ErrorMessage` | This is a text string that describes the error. | See Calendar Service API error messages.

If asynchronous, the `Import` method returns an object that contains a transaction ID for the `callback` instance, an error code, and an error message (see the following table). When the asynchronous call has completed, `callback` returns an object that contains a list of the imported calendar entries, an error code, and an error message (see the preceding table).

Table: Return value properties for an asynchronous Import
Property | Description | Value
--- | --- | ---
`result.TransactionID` | This is a number used as an identification to match transactions started with an asynchronous `Import` call to one or more calls it generates to `callback`. |
`result.ErrorCode` | This is a number that specifies a predefined error code. | See Service API error codes.
`result.ErrorMessage` | This is a text string that describes the error. | See Calendar Service API error messages.

Remarks:

- If entries are imported to a calendar other than the default one, the corresponding calendar file must exist on the device.

- For detailed information about calendar entries, see section Calendar entries.

Example code:

For the complete source of a sample widget that demonstrates how to use this Service API, see the full example.